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:
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:
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.
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