Python中如何使用groupby()对两列数据进行分组统计
实现分组求和的正确方法
问题原因
你现有代码的计算逻辑是正确的,已经完成了按Month、Order ID两个字段分组后对Cost列求和的计算,和预期结果的数值一致。默认配置下groupby会把分组键作为返回结果的多级索引,返回的是Series类型对象,才会和你预期的列化表格结构不一致。
修复方案
你可以通过以下两种任意一种方式得到预期的表格格式结果:
- 分组时添加
as_index=False参数,让分组键保留为普通列,直接返回DataFrame
sales_data.groupby(['Month', 'Order ID'], as_index=False)['Cost'].sum()
- 对现有计算结果调用
reset_index()方法,将多级索引转为普通列
sales_data.groupby(['Month', 'Order ID'])['Cost'].sum().reset_index()
如果你需要同时对多个数值列做聚合计算,只需要把选中的列替换为列表即可,示例:
# 同时对Cost、Profit两列分别求和 sales_data.groupby(['Month', 'Order ID'], as_index=False)[['Cost', 'Profit']].sum()
内容的提问来源于stack exchange,提问作者SHREYA JAGS
相关产品推荐
相关产品推荐

