Bei Verwendung von Groupby auf einem DataFrame müssen „Anwenden“ und „Transformieren“ verwendet werden unterscheidbar Eigenschaften:
Eingabe:
Ausgabe:
Betrachten Sie die benutzerdefinierte Funktion subtract_two zum Subtrahieren von Spalte „a“ von „b“:
def subtract_two(x): return x['a'] - x['b']
1. Anwenden:
Mit Anwenden können wir die Differenz von „a“ und „b“ für jede Gruppe berechnen und eine Reihe zurückgeben:
df.groupby('A').apply(subtract_two)
2. Transform:
Versuche, transform zu verwenden, führen zu einem KeyError, da transform eine Sequenz mit der gleichen Länge wie die Gruppe erwartet:
df.groupby('A').transform(subtract_two) # KeyError: 'a'
Um die Transformation zur Subtraktion zu verwenden, können wir einen Skalar aus unserer benutzerdefinierten Funktion zurückgeben und ihn auf alle Zeilen in anwenden lassen Gruppe:
def subtract_two_scalar(x): return (x['a'] - x['b']).mean() df.groupby('A').transform(subtract_two_scalar)
Dies gibt eine Reihe mit der Mittelwertdifferenz für jede Gruppe zurück.
Das obige ist der detaillierte Inhalt vonWie können Sie „Apply' und „Transform' für die Spaltensubtraktion und Mittelwertberechnung mit Groupby verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!