Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich Zeilen mit der maximalen Anzahl in Pandas GroupBy-Operationen?
Zeilen mit maximaler Anzahl in Pandas-Gruppen abrufen
Problem:
So identifizieren Sie Zeilen mit dem höchsten Wert für die Spalte „Anzahl“ in einem Pandas-DataFrame bei der Gruppierung nach mehreren Spalten?
Lösung:
Schritt 1: Maximale Anzahl für jede Gruppe ermitteln
Um die maximale Anzahl für jede Gruppe zu bestimmen Gruppe verwenden Sie die Funktionen groupby() und max():
max_counts = df.groupby(['Sp', 'Mt'])['count'].max()
Dadurch wird eine Serie erstellt, die jeweils die maximale Anzahl enthält Gruppe.
Schritt 2: Zeilen mit maximaler Anzahl identifizieren
Um die Indizes der Zeilen mit maximaler Anzahl im ursprünglichen DataFrame zu erhalten, verwenden Sie die transform()-Methode:
idx = df.groupby(['Sp', 'Mt'])['count'].transform(max) == df['count']
Dadurch wird eine boolesche Reihe erstellt, wobei „True“ Zeilen mit Maximum angibt count.
Schritt 3: Zeilen basierend auf der maximalen Anzahl filtern
Zuletzt filtern Sie den DataFrame mithilfe der booleschen Indizierung, um nur die Zeilen mit der maximalen Anzahl auszuwählen:
result = df[idx]
Dadurch wird ein neuer DataFrame zurückgegeben, der jeweils nur die Zeilen mit dem höchsten Wert für die Spalte „Anzahl“ enthält Gruppe.
Beispiele:
Beispiel 1:
df = pd.DataFrame({ 'Sp': ['MM1', 'MM1', 'MM1', 'MM2', 'MM2', 'MM2', 'MM4', 'MM4', 'MM4'], 'Mt': ['S1', 'S1', 'S3', 'S3', 'S4', 'S4', 'S2', 'S2', 'S2'], 'Value': ['a', 'n', 'cb', 'mk', 'bg', 'dgd', 'rd', 'cb', 'uyi'], 'count': [3, 2, 5, 8, 10, 1, 2, 2, 7] })
Ausgabe:
Sp Mt Value count 0 MM1 S1 a 3 2 MM1 S3 cb 5 3 MM2 S3 mk 8 4 MM2 S4 bg 10 8 MM4 S2 uyi 7
Beispiel 2:
df = pd.DataFrame({ 'Sp': ['MM2', 'MM2', 'MM4', 'MM4', 'MM4'], 'Mt': ['S4', 'S4', 'S2', 'S2', 'S2'], 'Value': ['bg', 'dgd', 'rd', 'cb', 'uyi'], 'count': [10, 1, 2, 8, 8] })
Ausgabe:
Sp Mt Value count 4 MM2 S4 bg 10 7 MM4 S2 cb 8 8 MM4 S2 uyi 8
Hinweis: Wenn mehrere Zeilen innerhalb einer Gruppe die maximale Anzahl haben, Alle diese Zeilen werden zurückgegeben.
Das obige ist der detaillierte Inhalt vonWie finde ich Zeilen mit der maximalen Anzahl in Pandas GroupBy-Operationen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!