Zeilen mit Maximalwerten in Gruppen mithilfe von Groupby abrufen
Bei der Datenanalyse ist es häufig erforderlich, Zeilen mit dem höchsten Wert zu identifizieren für eine bestimmte Spalte innerhalb jeder durch andere Spalten definierten Gruppe. Dieser Vorgang kann bequem mit den Methoden groupby() und transform() von Pandas ausgeführt werden, einer weit verbreiteten Python-Bibliothek zur Datenmanipulation.
Problemstellung
Gegeben Ein Pandas-DataFrame mit Spalten wie „Sp“, „Mt“, „Wert“ und „Anzahl“. Unser Ziel ist es, Zeilen zu extrahieren, die den maximalen „Anzahl“-Wert innerhalb jeder durch „Sp“ definierten Gruppe haben. und 'Mt'-Spalten.
Lösung
Um die gewünschten Zeilen abzurufen, können wir die folgenden Schritte ausführen:
Berechnen Sie die maximale Anzahl für jede Gruppe:
Zeilen mit maximaler Anzahl identifizieren:
Beispiel 1
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 |
Die Anwendung der oben genannten Schritte führt zu der folgenden 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 |
Beispiel 2
Mit einem anderen DataFrame:
Sp | Mt | Value | count |
---|---|---|---|
MM2 | S4 | bg | 10 |
MM2 | S4 | dgd | 1 |
MM4 | S2 | rd | 2 |
MM4 | S2 | cb | 8 |
MM4 | S2 | uyi | 8 |
Die Ausgabe wird:
Sp | Mt | Value | count |
---|---|---|---|
MM2 | S4 | bg | 10 |
MM4 | S2 | cb | 8 |
MM4 | S2 | uyi | 8 |
Alternativer Ansatz
Ein alternativer Ansatz besteht darin, dem DataFrame eine Spalte hinzuzufügen, die die maximale Anzahl darstellt jede Gruppe. Dies kann mit den folgenden Schritten erreicht werden:
Das obige ist der detaillierte Inhalt vonWie finde ich Zeilen mit Maximalwerten innerhalb von Gruppen in Pandas?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!