Heim > Backend-Entwicklung > Python-Tutorial > 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
Freigeben: 2024-11-11 08:02:02
Original
850 Leute haben es durchsucht

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)})
Nach dem Login kopieren

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

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

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

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

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage