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

在Pandas中按列名列表求和时触发KeyError: 'not in index'问题求助

解决DataFrame指定列求和的KeyError问题

问题根源

你的DataFrame列名是Col1、Col2这类首字母大写的格式,但求和列表sumlist里的列名是col2、col17全小写,大小写不匹配导致程序找不到对应列,触发KeyError。reset_index()是重置行索引的操作,和列名匹配问题无关,所以解决不了当前报错。

解决方案

方法1:统一求和列表的列名格式

把sumlist里的元素改成和DataFrame列名完全匹配的格式,比如用列表推导式将每个列名首字母大写:

sumlist = [col.capitalize() for col in sumlist]
# 执行求和
df['total'] = df[sumlist].sum(axis=1)

方法2:统一DataFrame的列名为小写

如果后续经常需要动态指定列名,可以先把DataFrame的所有列名转成小写,从根源避免大小写冲突:

# 列名转小写
df.columns = df.columns.str.lower()
# 直接用原sumlist求和
df['total'] = df[sumlist].sum(axis=1)

额外排查技巧

可以先检查求和列表里哪些列名不在DataFrame中,方便快速定位问题:

missing_cols = [col for col in sumlist if col not in df.columns]
print("缺失的列名:", missing_cols)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 13:29:58