向 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中文网其他相关文章!