如何将Pandas多列作为单一键进行值求和?
Pandas 按多列分组求和实现方案
原始数据
| Column A | Column B | Column C | VALUE |
|---|---|---|---|
| 1 | 1 | 1 | 11 |
| 1 | 5 | 5 | 6 |
| 2 | 1 | 1 | 9 |
| 1 | 5 | 5 | 5 |
| 1 | 1 | 1 | 2 |
| 2 | 1 | 1 | 1 |
预期结果
| Column A | Column B | Column C | SUM |
|---|---|---|---|
| 1 | 1 | 1 | 13 |
| 1 | 5 | 5 | 11 |
| 2 | 1 | 1 | 10 |
正确代码实现
先确保你的DataFrame已正确加载,然后执行以下代码:
import pandas as pd # (如果已有DataFrame可跳过此步)创建示例数据 data = { 'Column A': [1, 1, 2, 1, 1, 2], 'Column B': [1, 5, 1, 5, 1, 1], 'Column C': [1, 5, 1, 5, 1, 1], 'VALUE': [11, 6, 9, 5, 2, 1] } df = pd.DataFrame(data) # 核心分组求和逻辑 result = df.groupby(['Column A', 'Column B', 'Column C'])['VALUE'].sum().reset_index() # 重命名列名匹配预期结果 result.rename(columns={'VALUE': 'SUM'}, inplace=True) print(result)
可能的问题排查
- 若之前结果不符合预期,大概率是没加
reset_index():groupby默认返回带多级索引的Series,加上该方法会将索引转为普通列,得到和预期一致的表格结构。 - 检查分组列名拼写:确保列名和DataFrame中的完全一致(大小写、空格都不能错)。
内容的提问来源于stack exchange,提问作者Zeusz0
相关产品推荐
相关产品推荐

