Wie sortiere ich Daten innerhalb von Gruppen in Pandas DataFrames?

Susan Sarandon
Freigeben: 2024-10-20 17:27:02
Original
248 Leute haben es durchsucht

How to Sort Data Within Groups 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
Nach dem Login kopieren

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})
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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)
Nach dem Login kopieren

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
Nach dem Login kopieren
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!