„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 in Pandas eine Spalte mit Gruppenanzahlen zu einem gruppierten Datenrahmen hinzu?

Wie füge ich in Pandas eine Spalte mit Gruppenanzahlen zu einem gruppierten Datenrahmen hinzu?

Veröffentlicht am 06.11.2024
Durchsuche:452

How to Add a Column with Group Counts to a Grouped Dataframe in Pandas?

So fügen Sie eine Spalte zu einem gruppierten Datenrahmen in Pandas hinzu

Bei der Datenanalyse ist es oft notwendig, Daten zu gruppieren und Berechnungen durchzuführen jede Gruppe. Pandas bietet hierfür mit seiner Groupby-Funktion eine praktische Möglichkeit. Eine häufige Aufgabe besteht darin, die Werte einer Spalte innerhalb jeder Gruppe zu zählen und dem Datenrahmen eine Spalte hinzuzufügen, die diese Zählungen enthält.

Betrachten Sie den Datenrahmen df:

df = pd.DataFrame({'c':[1,1,1,2,2,2,2],'type':['m','n','o','m','m','n','n']})

Um die Werte des Typs für jedes c zu zählen, können wir die Funktion value_counts für den gruppierten Datenrahmen verwenden:

g = df.groupby('c')['type'].value_counts().reset_index(name='t')

Dadurch wird ein neuer Datenrahmen g mit den Gruppenanzahlen erstellt. Um g eine Spalte mit der Größe jeder Gruppe hinzuzufügen, können wir die Transformationsfunktion verwenden:

g['size'] = df.groupby('c')['type'].transform('size')

transform wendet eine Funktion auf jede Gruppe im ursprünglichen Datenrahmen an und gibt eine Serie zurück, deren Index am ursprünglichen Datenrahmen ausgerichtet ist. In diesem Fall verwenden wir die Größenfunktion, um die Anzahl der Elemente in jeder Gruppe zu zählen und sie der neuen Spaltengröße zuzuweisen. Der resultierende Datenrahmen g sieht nun wie folgt aus:

   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

Dies zeigt eine einfache Möglichkeit, eine neue Spalte zu einem gruppierten Datenrahmen hinzuzufügen, basierend auf den Ergebnissen einer Groupby-Aggregation.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729308796 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