You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中无需逐一列名实现分组并批量求和多列

解决方案

方法1:让pandas自动处理(最简便)

pandas的sum()方法会自动跳过非数值类型的列(比如你的Month列是字符串),直接对所有数值列求和,无需手动指定列名:

sum_df = df.groupby('Year').sum()

方法2:明确选择数值列(更严谨)

如果担心数据中有其他非数值列干扰,可以先筛选出所有数值类型的列再求和:

# 筛选int/float类型的列
numeric_columns = df.select_dtypes(include=['int64', 'float64']).columns
sum_df = df.groupby('Year')[numeric_columns].sum()

方法3:修正你原来的代码

你之前的错误是sum()方法不接受列名列表作为参数,正确写法是先指定列再调用sum():

# 取第2列及以后的所有列(不用写死100,适配任意列数)
headers = list(df.iloc[:, 2:].columns)
sum_df = df.groupby('Year')[headers].sum()

以上三种方法都能得到你期望的结果:

a    b   c    d    e
Year                          
2012  174.0  69.0  68.0  126.0  91.0
2013   99.0  121.0 86.0  150.0 107.0

内容的提问来源于stack exchange,提问作者Bobby Heyer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 21:03:31