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

DDD
發布: 2024-10-19 12:02:30
原創
880 人瀏覽過

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中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!