Heim >Backend-Entwicklung >Python-Tutorial >Wie kombiniere ich gruppierte Datenrahmen effektiv mit df.groupby().transform()?

Wie kombiniere ich gruppierte Datenrahmen effektiv mit df.groupby().transform()?

Barbara Streisand
Barbara StreisandOriginal
2024-10-19 12:29:29345Durchsuche

How to Combine Grouped Dataframes Effectively Using df.groupby().transform()?

Kombinieren von Groupby-Datenrahmen mit df.groupby().transform()

Beim Umgang mit Pandas-Datenrahmen ist es oft notwendig, Operationen daran durchzuführen Teilmengen der Daten, wie z. B. das Gruppieren von Werten und das Berechnen von Statistiken. Es kann jedoch umständlich sein, die Ergebnisse dieser Vorgänge wieder im ursprünglichen Datenrahmen zu kombinieren.

Um diese Herausforderung anzugehen, betrachten Sie das folgende Szenario:

Problem: Sie haben einen Datenrahmen mit zwei Spalten, „c“ und „type“. Ihr Ziel ist es, die Werte von „type“ für jedes „c“ zu zählen und dem Datenrahmen eine Spalte mit der Größe von „c“ hinzuzufügen.

Ansatz 1 (Verwendung einer Karte):

Ein Ansatz besteht darin, die Funktion „map()“ zu verwenden, die eine Funktion auf jeden Wert in einer Reihe anwendet. In diesem Fall können Sie die Größe von „c“ den entsprechenden „c“-Werten im Datenrahmen zuordnen:

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')
a = df.groupby('c').size().reset_index(name='size')
a.index = a['c']
g['size'] = g['c'].map(a['size'])</code>

Dieser Ansatz funktioniert, erfordert jedoch mehrere Schritte und eine manuelle Indexausrichtung.

Ansatz 2 (Verwenden von Transform):

Eine einfachere Lösung ist die Verwendung der transform()-Funktion von pandas, die eine Funktion auf jede Zeile eines Datenrahmens anwendet und eine an ausgerichtete Serie zurückgibt der Originalindex. Mit transform können Sie die Größe von „c“ direkt zum Datenrahmen hinzufügen:

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')
g['size'] = df.groupby('c')['type'].transform('size')</code>

Dieser Ansatz macht separate Größenberechnungen und Indexausrichtung überflüssig, was zu einer präziseren und effizienteren Lösung führt.

Das obige ist der detaillierte Inhalt vonWie kombiniere ich gruppierte Datenrahmen effektiv mit df.groupby().transform()?. 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