Heim  >  Artikel  >  Backend-Entwicklung  >  Wann sollte Pandas Apply vs. Transform für gruppierte Datenoperationen verwendet werden?

Wann sollte Pandas Apply vs. Transform für gruppierte Datenoperationen verwendet werden?

Susan Sarandon
Susan SarandonOriginal
2024-11-11 08:02:02809Durchsuche

When to Use Pandas apply vs transform for Grouped Data Operations?

In Pandas können sowohl „Anwenden“ als auch „Transformieren“ verwendet werden, um Operationen an gruppierten Daten durchzuführen. Es gibt jedoch einige wesentliche Unterschiede zwischen den beiden Methoden.

Eingabetyp

  • Apply übergibt den gesamten DataFrame für jede Gruppe als Eingabe an die benutzerdefinierte Funktion.
  • Transformation übergibt jede Spalte des DataFrame für jede Gruppe einzeln als Eingabe an die benutzerdefinierte Funktion.

Ausgabetyp

  • apply kann einen Skalar, eine Serie oder einen DataFrame zurückgeben.
  • transform muss eine Sequenz (z. B. Serie, Array oder Liste) mit derselben Länge wie die Gruppe zurückgeben.

Transformation

  • Anwenden kann verwendet werden, um Transformationen an einem DataFrame durchzuführen, z. B. das Aggregieren von Werten, das Filtern von Zeilen oder das Ändern von Daten.
  • Transformation wird hauptsächlich zum Ausführen verwendet Zeilenweise Operationen innerhalb einer Gruppe, wie z. B. das Skalieren von Werten oder das Hinzufügen neuer Spalten.

Beispiel

Betrachten Sie den folgenden DataFrame:

df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': randn(8), 'D': randn(8)})

So subtrahieren Sie Spalte C von Spalte D innerhalb jeder Gruppe mit „Anwenden“:

df.groupby('A').apply(lambda x: (x['C'] - x['D']))

So subtrahieren Sie Spalte C von Spalte D innerhalb jeder Gruppe mit „Transformieren“:

df.groupby('A').transform(lambda x: (x['C'] - x['D']).mean())

Beachten Sie, dass die Die an die Transformation übergebene Lambda-Funktion gibt den Mittelwert der Differenz zwischen C und D zurück, was zu einer transformierten Spalte mit der gleichen Form wie der ursprüngliche DataFrame führt.

Wann sollte „Anwenden vs. Transformieren“ verwendet werden:

  • Verwenden Sie „Anwenden“, wenn Sie auf mehrere Spalten innerhalb einer Gruppe zugreifen oder Vorgänge ausführen müssen, die zu einer anderen Form der Ausgabe führen (z. B. Werte aggregieren oder Zeilen filtern).
  • Verwenden Sie „Transformieren“, wenn Sie müssen zeilenweise Operationen innerhalb einer Gruppe ausführen und möchten eine neue Spalte oder Variable mit derselben Form wie die Eingabedaten erstellen.

Das obige ist der detaillierte Inhalt vonWann sollte Pandas Apply vs. Transform für gruppierte Datenoperationen verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn