„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie füge ich eine Spalte mithilfe der Pandas-Transformation in GroupBy DataFrames hinzu?

Wie füge ich eine Spalte mithilfe der Pandas-Transformation in GroupBy DataFrames hinzu?

Veröffentlicht am 31.10.2024
Durchsuche:441

How to Add a Column Using Pandas Transform in GroupBy DataFrames?

Spalte zum GroupBy-DataFrame hinzufügen mithilfe der Pandas-Transformation

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. Mit

.transform() können wir eine Funktion auf jede Gruppe im Datenrahmen anwenden und eine Serie mit den Ergebnissen zurückgeben. 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 eine Spalte mit der Größe c hinzuzufügen.

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 Führen Sie Folgendes aus:

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.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729308259 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3