Heim  >  Artikel  >  Backend-Entwicklung  >  Wie sortiere ich Ergebnisse innerhalb von Gruppen mithilfe von GroupBy und Aggregation in Pandas?

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

DDD
DDDOriginal
2024-10-20 17:22:31317Durchsuche

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

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!

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