Pandas Groupby und Sortieren innerhalb von Gruppen
Der Wunsch, die Ergebnisse einer Groupby-Aggregation zu sortieren, ist eine häufige Aufgabe. In diesem Beispiel haben wir einen DataFrame mit zwei Spalten, „Job“ und „Quelle“, und einer Spalte „Anzahl“, nach der wir gruppieren und sortieren möchten.
Dazu können wir „groupby“ verwenden ()-Methode zum Gruppieren des DataFrame nach den Spalten „Job“ und „Quelle“. Anschließend können wir die agg()-Methode verwenden, um die Spalte „count“ zu aggregieren, in diesem Fall mithilfe der Summenfunktion.
In [168]: df.groupby(['job','source']).agg({'count':sum}) Out[168]: count job source market A 5 B 3 C 2 D 4 E 1 sales A 2 B 4 C 6 D 3 E 7
Dadurch erhalten wir einen neuen DataFrame mit den gruppierten Ergebnissen. Wir können dann die Methode sort_values() verwenden, um die Spalte „Anzahl“ in absteigender Reihenfolge innerhalb jeder der Gruppen zu sortieren.
In [34]: df.sort_values(['job','count'],ascending=False).groupby('job').head(3) 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
Dadurch erhalten wir einen neuen DataFrame mit den Top-3-Ergebnissen für jede Gruppe.
Das obige ist der detaillierte Inhalt vonWie sortiere ich Ergebnisse innerhalb von Gruppen mithilfe von GroupBy und Aggregation in Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!