如何按DataFrame某列的非唯一值对另一列数值分组求和?
按分类列分组求和的解决方案
你需要的功能可以通过pandas的分组聚合一行代码完成:
result_df = df.groupby('X', as_index=False)['Y'].sum()
代码解释
groupby('X'):以X列的唯一值为依据对数据分组as_index=False:确保分组后的X列作为普通列保留,而非转为索引,最终得到你需要的两列结构['Y'].sum():对每个分组内的Y列数值求和
执行后得到的result_df就是目标结果:
| X | Y |
|---|---|
| A | 3 |
| B | 7 |
| C | 5 |
如果需要更灵活的聚合操作,也可以用agg()方法实现相同效果:
result_df = df.groupby('X', as_index=False).agg({'Y': 'sum'})
内容的提问来源于stack exchange,提问作者jacob
相关产品推荐
相关产品推荐

