Heim  >  Artikel  >  Backend-Entwicklung  >  Wie füge ich nach Groupby-Vorgängen in Pandas eine Spalte zu einem gruppierten DataFrame hinzu?

Wie füge ich nach Groupby-Vorgängen in Pandas eine Spalte zu einem gruppierten DataFrame hinzu?

DDD
DDDOriginal
2024-10-19 12:02:30876Durchsuche

How to Add a Column to a Grouped DataFrame After Groupby Operations in Pandas?

Spalte zum gruppierten DataFrame in Pandas hinzufügen

Beim Arbeiten mit GroupBy-Vorgängen in Pandas kann es hilfreich sein, dem Ergebnis zusätzliche Informationen hinzuzufügen Datenrahmen. In diesem Artikel wird eine Frage untersucht, wie eine Spalte effizient zu einem gruppierten Datenrahmen hinzugefügt werden kann, nachdem Groupby-Aggregationen durchgeführt wurden.

Betrachten Sie den folgenden Datenrahmen:

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

Das Ziel besteht darin, die Werte zu zählen Geben Sie für jeden Wert von „c“ eine „Typ“-Spalte ein und fügen Sie dem gruppierten Datenrahmen eine neue Spalte hinzu, die die „Größe“ jeder „c“-Gruppe darstellt. Nach der Durchführung der Groupby-Aggregation:

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

Der Datenrahmen „g“ enthält nun die Anzahl von „type“ für jedes „c“:

   c type  t
0  1    m  1
1  1    n  1
2  1    o  1
3  2    m  2
4  2    n  2

Um die Spalte „size“ hinzuzufügen Eine Möglichkeit besteht darin, die Kartenfunktion zu verwenden:

a.index = a['c']
g['size'] = g['c'].map(a['size'])

Es gibt jedoch einen einfacheren Ansatz mit der Transformationsfunktion:

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

Mit der Transformation kann die Größenspalte hinzugefügt werden direkt zum „g“-Datenrahmen und richtet den Index am ursprünglichen Datenrahmen aus. Der resultierende Datenrahmen:

   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

Das obige ist der detaillierte Inhalt vonWie füge ich nach Groupby-Vorgängen in Pandas eine Spalte zu einem gruppierten DataFrame hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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