Wie füge ich aggregierte Spalten zu gruppierten DataFrames in Pandas hinzu?

Patricia Arquette
Freigeben: 2024-10-19 11:46:01
Original
512 Leute haben es durchsucht

How to Add Aggregated Columns to Grouped DataFrames in Pandas?

Hinzufügen von Spalten zu gruppierten Datenrahmen in Pandas

Bei der Arbeit mit Datenrahmen in Pandas ist es häufig erforderlich, Daten zu gruppieren und Werte innerhalb dieser zu aggregieren Gruppen. In der Regel umfasst dies die Erstellung eines separaten Datenrahmens mit den Aggregationsergebnissen. Es kann jedoch auch nützlich sein, diese aggregierten Spalten direkt zum ursprünglichen Datenrahmen hinzuzufügen.

Lassen Sie uns dies anhand eines einfachen Beispieldatenrahmens veranschaulichen:

<code class="python">df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})</code>
Nach dem Login kopieren

Um die Werte von „Typ“ zu zählen Für jeden Wert von „c“ können wir den folgenden Code verwenden:

<code class="python">g = df.groupby('c')['type'].value_counts().reset_index(name='t')</code>
Nach dem Login kopieren

Dadurch wird ein neuer Datenrahmen „g“ mit drei Spalten erstellt: „c“, „type“ und „t“, die darstellen Anzahl jedes „Typs“ innerhalb jedes „c“.

Als nächstes können wir die Methode „size()“ verwenden, um die Anzahl der Zeilen in jeder Gruppe zu zählen:

<code class="python">a = df.groupby('c').size().reset_index(name='size')</code>
Nach dem Login kopieren

Dies Erstellt einen neuen Datenrahmen „a“ mit zwei Spalten: „c“ und „size“, der die Anzahl der Zeilen in jeder „c“-Gruppe enthält.

Um die Spalte „size“ zum ursprünglichen Datenrahmen hinzuzufügen, gibt es eine Option besteht darin, die Funktion „map()“ zu verwenden, wie in der Frage gezeigt. Ein einfacherer Ansatz ist jedoch die Verwendung der Methode „transform()“:

<code class="python">g['size'] = df.groupby('c')['type'].transform('size')</code>
Nach dem Login kopieren

Die Methode „transform()“ gibt eine Serie zurück, deren Index am ursprünglichen Datenrahmen ausgerichtet ist. Indem wir diese Serie einer neuen Spalte im gruppierten Datenrahmen zuweisen, fügen wir die aggregierten Werte effektiv wieder dem ursprünglichen Datenrahmen hinzu.

Der resultierende Datenrahmen „g“ enthält nun die zusätzliche Spalte „Größe“:

   c type  t  size
0  1    m  1     3
1  1    n  1     3
2  1    o  1     3
3  2    m  2     4
4  2    n  2     4
Nach dem Login kopieren

Dieser Ansatz bietet eine einfache und effiziente Möglichkeit, aggregierte Spalten zu gruppierten Datenrahmen in Pandas hinzuzufügen.

Das obige ist der detaillierte Inhalt vonWie füge ich aggregierte Spalten zu gruppierten DataFrames in Pandas hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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