Spalte zum GroupBy-DataFrame mithilfe der Pandas-Transformation hinzufügen
Beim Arbeiten mit Groupby-Vorgängen in Pandas ist es oft nützlich, dem eine neue Spalte hinzuzufügen resultierender Datenrahmen. Eine Methode, dies zu erreichen, ist die Verwendung der Funktion .map(), wie im Beispiel gezeigt. Ein alternativer und einfacherer Ansatz besteht jedoch darin, die Funktion .transform() zu verwenden.
.transform() ermöglicht es uns, eine Funktion auf jede Gruppe im Datenrahmen anzuwenden und eine Serie mit den Ergebnissen zurückzugeben. Die zurückgegebene Serie verfügt über einen Index, der am ursprünglichen Datenrahmen ausgerichtet ist.
Zur Veranschaulichung beginnen wir mit dem bereitgestellten Datenrahmen:
df = pd.DataFrame({'c': [1, 1, 1, 2, 2, 2, 2], 'type': ['m', 'n', 'o', 'm', 'm', 'n', 'n']})
Unser Ziel ist es, die Werte des Typs für jedes c zu zählen und fügen Sie eine Spalte mit der Größe c hinzu.
g = df.groupby('c')['type'].value_counts().reset_index(name='t')
Dieser Code zählt die Werte für jede Gruppe und erstellt eine neue Spalte mit dem Namen t.
Um die Größenspalte mit .transform( hinzuzufügen ), können wir Folgendes tun:
g['size'] = df.groupby('c')['type'].transform('size')
.transform('size') wendet die Größenfunktion auf jede Gruppe an, die die Größe jeder Gruppe zurückgibt. Die resultierende Serie wird am Index des ursprünglichen Datenrahmens ausgerichtet, sodass wir sie als neue Spalte zu g hinzufügen können.
Die Ausgabe ist ein Datenrahmen mit einer zusätzlichen Spalte namens „size:“
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
Die Verwendung von .transform() bietet eine präzisere und einfachere Möglichkeit, eine Spalte aus einer Groupby-Aggregation wieder zum ursprünglichen Datenrahmen hinzuzufügen.
Das obige ist der detaillierte Inhalt vonWie füge ich eine Spalte mithilfe der Pandas-Transformation in GroupBy DataFrames hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!