Pandas两列groupby分组求和后保留原分组列不转索引的问题
解决方法
你可以通过两种常用方式实现需求:
- 方法1:在groupby时直接指定
as_index=False参数,这是最简便的写法
df.groupby(['param1', 'param2'], as_index=False).sum()
参数说明:as_index默认取值为True,会将分组用到的键转换为结果的索引,设置为False后就会将分组键保留为普通数据列,同时对数值列执行求和聚合。
- 方法2:如果你已经完成分组聚合得到了带索引的结果,可以调用
reset_index()将索引还原为普通列
# 先聚合再重置索引 df.groupby(['param1', 'param2']).sum().reset_index()
如果需要更严谨地指定仅对num1、num2列求和,避免其他非数值列被误处理,可以指定聚合列:
df.groupby(['param1', 'param2'], as_index=False)[['num1', 'num2']].sum()
内容的提问来源于stack exchange,提问作者Reine Baudache
相关产品推荐
相关产品推荐

