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

Pandas筛选指定行后对目标列求和出现list无sum属性报错如何解决

问题原因与修正方案

错误原因

你的代码存在2个语法问题:

  • loc索引的括号使用错误:pandas的loc筛选行+列的语法为df.loc[行筛选条件, 列筛选条件],所有参数都需要放在loc后的同一对方括号内,你提前关闭了loc的方括号,导致后续取值逻辑完全错乱
  • 列参数多套了一层列表:colart2015本身已经是存储列名的列表,不需要再额外加方括号包裹,你多写的[]把它变成了嵌套的Python原生列表,最终调用.sum()的对象是这个列表,才会抛出'list' object has no attribute 'sum'的报错

修正后代码

# 选中需要求和的列
colart2015 = ['Column1', 
              'Column6',
              'Column10']

# 仅对Year为2015的行,计算指定列的行求和结果,赋值给totalart字段
df_pivotms.loc[df_pivotms['Year'] == '2015', 'totalart'] = df_pivotms.loc[df_pivotms['Year'] == '2015', colart2015].sum(axis=1)

如果需要让非2015年的行totalart字段值为0而非NaN,可以在赋值后补充一行:

df_pivotms['totalart'] = df_pivotms['totalart'].fillna(0)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:00:05