如何根据选中的索引对pandas DataFrame的列进行求和
实现代码
你可以直接复用自己已有的DataFrame对象,示例构造代码如下:
import pandas as pd # 示例原始DataFrame构造,可替换为你自己的数据集 df = pd.DataFrame( {'A': [15, 20, 1], 'B': [16, 30, 11]}, index=['G9', 'G10', 'G9PRO'] )
核心操作步骤
- 定义要选中的索引列表,支持单选和多选:
# 单选示例 selected_index = ['G9'] # 多选示例 # selected_index = ['G9', 'G10']
- 执行筛选、求和、格式转换操作:
result = df.loc[selected_index].sum(axis=0).to_frame(name='logs')
结果验证
- 单选
['G9']时,输出结果完全匹配需求:
| logs | |
|---|---|
| A | 15 |
| B | 16 |
- 多选
['G9', 'G10']时,输出结果为对应列求和值,匹配需求:
| logs | |
|---|---|
| A | 35 |
| B | 46 |
异常排查说明
你之前调用sum没有得到正确结果,大概率是求和轴参数设置错误:
axis=0代表沿行方向求和,即所有选中行的同一列数据累加,完全符合你的需求- pandas默认sum的
axis=0,如果误设为axis=1会得到每行的求和结果,和预期输出不符
内容的提问来源于stack exchange,提问作者Leon
相关产品推荐
相关产品推荐

