Pandas Plot Value zählt in absteigender Reihenfolge

Salman Mehmood 21 Juni 2023
Pandas Plot Value zählt in absteigender Reihenfolge

Das Hauptziel dieses Artikels ist es zu zeigen, wie wir mit Hilfe von Matplotlib in Python Werte in einem Diagramm in absteigender Reihenfolge darstellen können.

Der Plotwert zählt in Pandas

Das Problem

Mit dem Dataframe kann je nach Bedarf und Situation eine grosse Menge an Daten gespeichert und jederzeit abgerufen werden. Es bietet die Flexibilität, mehrere Datentypen in einer einzigen, geordneten Datenstruktur für die benutzerdefinierte Verwendung zu speichern.

Während Dataframe Daten speichert, ist es manchmal auch notwendig, diese zu visualisieren. Mit Matplotlib ist die Visualisierung von Daten ganz einfach.

Je nach Szenario kann es sein, dass wir die Daten in absteigender Form visualisieren müssen.

Betrachten Sie den folgenden Code:

import pandas as pd
import matplotlib.pyplot as plt


keyItems = ("a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "c", "c", "c", "d")
idData = ("X", "X", "X", "X", "X", "X", "X", "X", "Y", "X", "X", "X", "X", "X")

df = pd.DataFrame({"keys": keyItems, "ids": idData})
print("\nDataframe:\n" + str(df))
print("\nValue Counts:\n" + str(df.value_counts()))

df.value_counts().plot(kind="barh")

plt.show()

Ausgang:

Dataframe:
   keys ids
0     a   X
1     a   X
2     a   X
3     a   X
4     a   X
5     b   X
6     b   X
7     b   X
8     b   Y
9     b   X
10    c   X
11    c   X
12    c   X
13    d   X

Value Counts:
keys  ids
a     X      5
b     X      4
c     X      3
b     Y      1
d     X      1
dtype: int64

Die Handlung:

Problemplot

Aus dem oben erwähnten Code ist ersichtlich, dass Schlüssel und ihre entsprechenden ids separat deklariert wurden, wobei alle Schlüssel in einer Variablen namens keyItems und ihre entsprechenden IDs in einer Variablen namens idData.

Nach der Instanziierung des Dataframe prüfen wir mit der Methode value_counts, wie oft ein bestimmter Wert aufgetreten ist. Danach zeichnen wir den Graphen und zeigen ihn mit der Methode show, die Teil der matplotlib.plot ist, auf dem Bildschirm an.

Aus dem Plot ist ersichtlich, dass der Graph aufsteigend aufgetragen ist. Basierend auf den Anforderungen des Projekts oder einem anderen Szenario kann es erforderlich sein, das Diagramm in absteigender Weise zu zeichnen, anstatt dass die aufsteigende Reihenfolge im Ausgabediagramm angezeigt wird.

Die Lösung

Durch das Hinzufügen von sort_values() vor dem Zeichnen des Diagramms ist es möglich, Werte in absteigender Reihenfolge zu sortieren, was dazu führt, dass die größten Werte oben und die kleinsten unten in der Ausgabe erscheinen.

Betrachten Sie den folgenden Code:

df.value_counts().sort_values().plot(kind="barh")

Der folgende Code demonstriert die Wirkung von sort_values() auf value_counts().

print("\nValue Counts:\n" + str(df.value_counts()))
print("\nValue Counts - Sorted:\n" + str(df.value_counts().sort_values()))

Vollständiger Code:

import pandas as pd
import matplotlib.pyplot as plt

keyItems = ("a", "a", "a", "a", "a", "b", "b", "b", "b", "b", "c", "c", "c", "d")
idData = ("X", "X", "X", "X", "X", "X", "X", "X", "Y", "X", "X", "X", "X", "X")

df = pd.DataFrame({"keys": keyItems, "ids": idData})
print("\nValue Counts:\n" + str(df.value_counts()))
print("\nValue Counts - Sorted:\n" + str(df.value_counts().sort_values()))

df.value_counts().sort_values().plot(kind="barh")
plt.show()

Ausgang:

Value Counts:
keys  ids
a     X      5
b     X      4
c     X      3
b     Y      1
d     X      1
dtype: int64

Value Counts - Sorted:
keys  ids
b     Y      1
d     X      1
c     X      3
b     X      4
a     X      5

Die Handlung:

Problemplot

Es ist möglich, die Ausgabe von values_count mit der Methode sort_values in absteigender Reihenfolge zu sortieren, wobei das größte Vorkommen oben im Diagramm angezeigt wird und das kleinste ganz unten im Ausgabeplot.

Bei Bedarf ist es mit der Methode sort_index auch möglich, die values_count statt nach Werten nach Index zu sortieren.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Verwandter Artikel - Pandas Plot