Heim  >  Artikel  >  Backend-Entwicklung  >  Wie gruppiere ich Daten und sortiere innerhalb von Gruppen mit Pandas GroupBy?

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

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

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>

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>

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>

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>

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!

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