首頁  >  文章  >  後端開發  >  如何在 Pandas 中進行 Groupby 操作後向分組 DataFrame 新增列?

如何在 Pandas 中進行 Groupby 操作後向分組 DataFrame 新增列?

DDD
DDD原創
2024-10-19 12:02:30974瀏覽

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

向pandas 中的分組DataFrame 添加列

在pandas 中使用GroupBy 操作時,向結果添加附加資訊可能會很有幫助數據框。本文探討如何在執行 groupby 聚合後有效地將資料列新增至分組資料幀中的問題。

考慮以下資料幀:

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

目標是計算為「c」的每個值鍵入「type」列,並在分組資料框中新增一個資料列,表示每個“c”組的“大小”。執行groupby 聚合後:

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

資料框「g」現在包含每個「c」的「type」計數:

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

新增「size」列,一個選擇是使用map函數:

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

但是,還有一種更直接的方法使用transform函數:

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

使用transform,可以將尺寸列直接加入「g」資料幀,將索引與原始資料幀對齊。產生的資料框:

   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

以上是如何在 Pandas 中進行 Groupby 操作後向分組 DataFrame 新增列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn