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>
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>
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>
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>
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
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!