Mehrere Aggregationen in derselben Spalte mit Pandas GroupBy.agg()
Bei der Arbeit mit Pandas ist es oft notwendig, mehrere Aggregationen in derselben Spalte durchzuführen die gleiche Spalte. Der einfache Ansatz, dieselbe Spalte mehrmals in der agg()-Methode anzugeben, ist zwar intuitiv, aber syntaktisch nicht korrekt. Dies wirft die Frage auf, wie man mithilfe von GroupBy.agg() verschiedene Aggregationsfunktionen effektiv und präzise auf eine einzelne Spalte anwenden kann.
Lösung
Stand: 2022-06- 20, die empfohlene Vorgehensweise für mehrere Aggregationen ist die Verwendung einer Wörterbuchsyntax:
df.groupby('dummy').agg({ 'returns': {'Mean': np.mean, 'Sum': np.sum} })
In diesem Beispiel ist die Die Spalte „returns“ wird sowohl mit der Mittelwert- als auch mit der Summenfunktion aggregiert. Der resultierende DataFrame enthält zwei neue Spalten, „Mittelwert“ und „Summe“, die die jeweiligen Aggregationen anzeigen.
Historische Notiz
Vor der Einführung des Wörterbuchs Syntax gab es zwei alternative Methoden für mehrere Aggregationen:
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
Dieser Ansatz übergibt die Funktionen als Liste direkt an agg(). Der DataFrame enthält zwei neue Spalten mit den Ergebnissen der Mittelwert- bzw. Summenaggregationen.
df.groupby('dummy').agg({'returns': {'f1': np.mean, 'f2': np.sum}})
Ähnlich wie beim Listenansatz werden Funktionen als Wörterbuch innerhalb eines Wörterbuchs übergeben. Die Schlüssel des inneren Wörterbuchs geben die Funktionsnamen an, während die Werte die Aggregationsfunktionen sind. Der DataFrame verfügt über eine Spalte für jeden angegebenen Funktionsnamen.
Das obige ist der detaillierte Inhalt vonWie führe ich mit Pandas GroupBy.agg() mehrere Aggregationen für eine einzelne Spalte durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!