Pandas Groupby und Sortieren innerhalb von Gruppen
Das Gruppieren eines DataFrame nach mehreren Spalten ist eine häufige Aufgabe bei der Datenbearbeitung. Es ermöglicht uns, Daten nach diesen Spalten zu aggregieren und weitere Operationen an den aggregierten Ergebnissen durchzuführen. Allerdings ist es oft notwendig, die aggregierten Ergebnisse innerhalb jeder Gruppe zu sortieren, um die oberen oder unteren Zeilen zu erhalten.
Beachten Sie den in der Frage bereitgestellten DataFrame df:
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
Das Ziel ist Gruppieren Sie df nach Job- und Quellspalten und sortieren Sie dann die Spalte „Anzahl“ in absteigender Reihenfolge innerhalb jeder der Gruppen. Um dies zu erreichen, können wir die Funktionen groupby() und sort_values() wie folgt verwenden:
<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False)</code>
Dadurch wird die Spalte „count“ innerhalb jeder Gruppe in absteigender Reihenfolge sortiert und die folgende Ausgabe bereitgestellt:
job source sales E 7 C 6 B 4 D 3 A 2 market A 5 D 4 B 3 C 2 E 1
Wenn wir jedoch nur die obersten drei Zeilen innerhalb jeder Gruppe erhalten möchten, können wir die Funktion head() verwenden:
<code class="python">df.groupby(['job', 'source'])['count'].sum().sort_values(ascending=False).groupby('job').head(3)</code>
Dies wird uns das folgende Ergebnis liefern:
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
Durch die Kombination der Funktionen groupby(), sort_values() und head() können wir die oberen oder unteren Zeilen innerhalb jeder Gruppe in Pandas effektiv gruppieren, sortieren und auswählen.
Das obige ist der detaillierte Inhalt vonWie gruppiere und sortiere ich Daten in bestimmten Spalten in einem DataFrame?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!