首页  >  文章  >  后端开发  >  如何在 Pandas 中进行 Groupby 操作后向分组 DataFrame 添加列?

如何在 Pandas 中进行 Groupby 操作后向分组 DataFrame 添加列?

DDD
DDD原创
2024-10-19 12:02:30982浏览

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