Heim >Backend-Entwicklung >Python-Tutorial >Wie gruppiere und sortiere ich Daten in bestimmten Spalten in einem DataFrame?

Wie gruppiere und sortiere ich Daten in bestimmten Spalten in einem DataFrame?

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 17:20:02246Durchsuche

How to Group and Sort Data within Specific Columns in a DataFrame?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn