Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Pandas mehrere Aggregationen auf dieselbe Spalte anwenden?
Anwenden mehrerer Aggregationen auf dieselbe Spalte in Pandas
In Pandas bietet GroupBy.agg() eine bequeme Möglichkeit, mehrere Funktionen auszuführen gruppierte Daten. Das Anwenden verschiedener Funktionen auf dieselbe Spalte mit agg() kann jedoch scheinbar eine Herausforderung sein.
Traditionell besteht der syntaktisch falsche, aber gewünschte Ansatz darin, doppelte Schlüssel an das Wörterbuchargument von agg() zu übergeben, was nicht der Fall ist in Python erlaubt.
Um dieses Problem zu beheben, bietet pandas mehrere Optionen an:
Option 1: Liste von Tupel
Ab dem 20.06.2022 besteht die bevorzugte Methode darin, agg() eine Liste von Tupeln [(Spalte, Funktion)] bereitzustellen, wobei jedes Tupel eine auszuführende Aggregation darstellt die angegebene Spalte.
df.groupby('dummy').agg( Mean=('returns', np.mean), Sum=('returns', np.sum))
Option 2: Verschachtelt Wörterbuch
Ein anderer Ansatz ist die Verwendung eines verschachtelten Wörterbuchs, bei dem der äußere Schlüssel die Spalte und die inneren Werte die anzuwendenden Funktionen sind.
df.groupby('dummy').agg({'returns': {'Mean': np.mean, 'Sum': np.sum}})
Option 3: Liste der Funktionen
Für historische Versionen von Pandas besteht eine alternative Option darin, die Funktionen als Liste innerhalb des Wörterbucharguments von zu übergeben agg().
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
Durch die Verwendung dieser Optionen können Sie bequem mehrere Aggregationen für dieselbe Spalte durchführen, ohne dass Hilfsfunktionen erforderlich sind oder agg() mehrmals explizit aufgerufen werden muss.
Das obige ist der detaillierte Inhalt vonWie kann ich in Pandas mehrere Aggregationen auf dieselbe Spalte anwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!