Wie gruppiere ich Daten und sortiere innerhalb von Gruppen mit Pandas GroupBy?

DDD
Freigeben: 2024-10-20 17:22:02
Original
412 Leute haben es durchsucht

How to Group Data and Sort Within Groups Using Pandas GroupBy?

Pandas GroupBy und Sortieren innerhalb von Gruppen

Stellen Sie sich eine Situation vor, in der Sie einen DataFrame mit mehreren Spalten haben und die Zeilen nach zwei Spalten gruppieren möchten. Nach der Gruppierung müssen Sie möglicherweise die aggregierten Ergebnisse innerhalb jeder Gruppe weiter sortieren, z. B. nach einer Zählungsspalte in absteigender Reihenfolge sortieren. So können Sie das erreichen:

Um Daten nach mehreren Spalten zu gruppieren und dann innerhalb der Gruppen zu sortieren, können Sie die Funktionen groupby() und sort_values() kombinieren. Angenommen, Sie haben einen DataFrame mit Spaltenanzahl, Job und Quelle.

<code class="python">import pandas as pd

df = pd.DataFrame({'count': [2, 4, 6, 3, 7, 5, 3, 2, 4, 1],
                  'job': ['sales','sales','sales','sales','sales', 'market','market','market','market','market'],
                  'source': ['A','B','C','D','E','A','B','C','D','E']})</code>
Nach dem Login kopieren

Um die Gesamtzahl für jede Kombination aus Job und Quelle zu erhalten, können Sie Folgendes tun:

<code class="python">df.groupby(['job','source']).agg({'count':sum})</code>
Nach dem Login kopieren

Als nächstes können Sie Folgendes tun, um die Zählspalte in absteigender Reihenfolge innerhalb jeder der Gruppen zu sortieren und nur die obersten drei Zeilen zu übernehmen:

<code class="python">result = df.sort_values(['job','count'],ascending=False).groupby('job').head(3)</code>
Nach dem Login kopieren

Dadurch wird ein DataFrame mit den obersten drei Zeilen zurückgegeben jede Jobgruppe, sortiert nach der Zählspalte in absteigender Reihenfolge. Der resultierende DataFrame könnte so aussehen:

<code class="python">print(result)

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

Das obige ist der detaillierte Inhalt vonWie gruppiere ich Daten und sortiere innerhalb von Gruppen mit Pandas GroupBy?. 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