Wie sortiere ich Ergebnisse innerhalb von Gruppen mithilfe von GroupBy und Aggregation in Pandas?

DDD
Freigeben: 2024-10-20 17:22:31
Original
425 Leute haben es durchsucht

How to Sort Results within Groups Using GroupBy and Aggregation in Pandas?

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

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage