Heim > Backend-Entwicklung > Python-Tutorial > Wie finde ich Zeilen mit maximalen Zählwerten innerhalb von Gruppen in Pandas?

Wie finde ich Zeilen mit maximalen Zählwerten innerhalb von Gruppen in Pandas?

Susan Sarandon
Freigeben: 2024-12-26 03:59:09
Original
1019 Leute haben es durchsucht

How to Find Rows with Maximum Count Values within Groups in Pandas?

Groupby-Daten und Abrufen von Zeilen mit maximalen Zählwerten

Um die Zeilen mit maximalen Zählwerten innerhalb von Gruppen zu ermitteln, können Groupby-Operationen eingesetzt werden ein Pandas DataFrame.

Bedenken Sie Folgendes DataFrame:

Sp Mt Value count
MM1 S1 a 3
MM1 S1 n 2
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM2 S4 dgd 1
MM4 S2 rd 2
MM4 S2 cb 2
MM4 S2 uyi 7

Beispiel 1:

Unser Ziel ist es, Zeilen innerhalb jeder Gruppe (definiert durch ['Sp', 'Mt']) zu identifizieren, die Folgendes haben der höchste Zählwert. In Beispiel 1 haben wir die folgende erwartete Ausgabe:

Sp Mt Value count
MM1 S1 a 3
MM1 S3 cb 5
MM2 S3 mk 8
MM2 S4 bg 10
MM4 S2 uyi 7

Um dies zu erreichen, können wir zunächst den maximalen Zählwert für jede Gruppe ermitteln:

df.groupby(['Sp', 'Mt'])['count'].max()
Nach dem Login kopieren
Nach dem Login kopieren

Was Folgendes ergibt:

Sp Mt
MM1 S1 3
MM1 S3 5
MM2 S3 8
MM2 S4 10
MM4 S2 7

Dann werden die Indizes des ursprünglichen DataFrames extrahiert, wobei der Zählwert jeweils dem Maximalwert entspricht Gruppe:

idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']
df[idx]
Nach dem Login kopieren

Was die gewünschte Ausgabe ergibt.

Beispiel 2:

In Beispiel 2 ist die erwartete Ausgabe wie folgt:

Sp Mt Value count
MM2 S4 bg 10
MM4 S2 cb 8
MM4 S2 uyi 8

In diesem Szenario gibt es mehrere Zeilen innerhalb der MM4-Gruppe mit dem maximalen Zählwert (8). Mit dem gleichen Ansatz wie zuvor erhalten wir beide Zeilen:

Sp Mt Value count
MM2 S4 bg 10
MM4 S2 cb 8
MM4 S2 uyi 8

Aktualisierung:

Wenn das Ziel darin besteht, dem DataFrame eine neue Spalte hinzuzufügen, die den maximalen Zählwert innerhalb jeder Gruppe angibt, können wir die Transformationsmethode verwenden, um den Wert für jede Gruppe zu berechnen Zeile:

df.groupby(['Sp', 'Mt'])['count'].max()
Nach dem Login kopieren
Nach dem Login kopieren

Dies führt zu einem DataFrame, der die Spalte count_max enthält, die jeweils den maximalen Zählwert enthält Gruppe:

Sp Mt Value count count_max
MM1 S1 a 3 3
MM1 S1 n 2 3
MM1 S3 cb 5 5
MM2 S3 mk 8 8
MM2 S4 bg 10 10
MM2 S4 dgd 1 10
MM4 S2 rd 2 7
MM4 S2 cb 2 7
MM4 S2 uyi 7 7

Das obige ist der detaillierte Inhalt vonWie finde ich Zeilen mit maximalen Zählwerten innerhalb von Gruppen in Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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