Heim >Backend-Entwicklung >Python-Tutorial >Wie sortiere ich Daten innerhalb von Gruppen in Pandas DataFrames?
Sortieren innerhalb von Gruppen in Pandas
Bei der Arbeit mit Pandas-Datenrahmen ist es häufig erforderlich, Daten nach bestimmten Spalten zu gruppieren und dann zusätzliche Vorgänge auszuführen innerhalb dieser Gruppen. Eine häufige Anforderung besteht darin, die gruppierten Daten nach einem bestimmten Kriterium zu sortieren.
Um dies zu erreichen, kann die Funktion „groupby“ mit der Funktion „sort_values“ verkettet werden. Betrachten Sie als Beispiel einen Datenrahmen df mit den Spalten „Anzahl“, „Job“ und „Quelle“.
In [167]: df Out[167]: count job source 0 2 sales A 1 4 sales B 2 6 sales C 3 3 sales D 4 7 sales E 5 5 market A 6 3 market B 7 2 market C 8 4 market D 9 1 market E
Wenn Sie die Daten nach Job und Quelle gruppieren und dann die aggregierten Ergebnisse nach Anzahl in absteigender Reihenfolge sortieren möchten, Sie können Folgendes tun:
In [168]: df.groupby(['job','source']).agg({'count':sum})
Dadurch wird ein neuer Datenrahmen erstellt, der die aggregierten Zählwerte für jede Gruppe enthält. Der resultierende Datenrahmen wird jedoch nicht nach Anzahl sortiert. Um den Datenrahmen zu sortieren, können Sie die Funktion sort_values verwenden:
In [34]: df.sort_values(['job','count'],ascending=False)
Dadurch wird der Datenrahmen zuerst nach Job und dann nach Anzahl in absteigender Reihenfolge sortiert. Der resultierende Datenrahmen sieht folgendermaßen aus:
Out[35]: count job source 4 7 sales E 2 6 sales C 1 4 sales B 5 5 market A 8 4 market D 6 3 market B
Um die oberen drei Zeilen jeder Gruppe zu übernehmen, können Sie die Head-Funktion verwenden:
In [34]: df.sort_values(['job','count'],ascending=False).groupby('job').head(3)
Dies führt zu einem neuen Datenrahmen Das enthält die obersten drei Zeilen jeder Gruppe, sortiert nach Anzahl in absteigender Reihenfolge.
Out[35]: count job source 4 7 sales E 2 6 sales C 1 4 sales B 5 5 market A 8 4 market D 6 3 market B
Das obige ist der detaillierte Inhalt vonWie sortiere ich Daten innerhalb von Gruppen in Pandas DataFrames?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!