如何用Pandas groupby按人和颜色列聚合计算穿着次数总和
Pandas分组聚合实现方法
你可以直接指定两个分组字段,对穿着次数字段执行求和聚合即可,核心代码如下:
# 导入pandas(如果已导入可省略) import pandas as pd # 假设你的原始DataFrame变量名为df # as_index=False 可以让分组的Person和Colour字段保留为普通列,而非行索引 agg_df = df.groupby(['Person', 'Colour'], as_index=False)['Number of times worn'].sum()
如果你需要自定义聚合后的列名,也可以使用agg方法实现:
agg_df = df.groupby(['Person', 'Colour'], as_index=False).agg( 总穿着次数=('Number of times worn', 'sum') )
以上代码执行后,得到的agg_df就是你需要的每人对应每种颜色的总穿着次数统计结果。针对你提供的示例数据,输出结果示例如下:
| Person | Colour | 总穿着次数 |
|---|---|---|
| Tom | Red | 8 |
| Tom | Blue | 15 |
| Tom | Green | 9 |
| John | Red | 19 |
| John | Green | 0 |
| John | Orange | 5 |
| Stanley | Red | 2 |
| Stanley | Orange | 4 |
| Stanley | Green | 18 |
内容的提问来源于stack exchange,提问作者Jimmy K
相关产品推荐
相关产品推荐

