pandas多列求和新增列时报KeyError: 'AdminHrs1'如何解决
问题排查解决步骤
- 第一步:先输出当前DataFrame的所有列名,确认目标列是否真实存在,以及列名的拼写、大小写、是否包含多余空白字符
print(data2.columns.tolist())
- 第二步:如果发现列名前后存在多余空格,批量清理所有列名的首尾空白
data2.columns = data2.columns.str.strip()
- 第三步:如果是大小写不匹配导致的问题,可以将所有列名统一转为小写/大写,后续用统一格式的列名访问即可
# 统一转小写示例 data2.columns = data2.columns.str.lower() # 之后就用小写列名访问 data2['AdminHours'] = data2[['adminhrs1', 'adminhrs2']].sum(axis=1)
- 第四步:确认当前data2没有被误修改,比如读取数据源时读错文件、中间操作误删除了目标列,可以打印前5行查看整体数据结构
print(data2.head())
最终正确求和写法
确认列名准确后,三列求和推荐用以下高效写法,不需要逐行apply:
# 替换为你实际的三个目标列名即可 data2['AdminHours'] = data2[['AdminHrs1', 'AdminHrs2', 'AdminHrs3']].sum(axis=1)
如果需要缺失值参与计算时返回空值而非把缺失值当0,添加skipna=False参数即可:
data2['AdminHours'] = data2[['AdminHrs1', 'AdminHrs2', 'AdminHrs3']].sum(axis=1, skipna=False)
内容的提问来源于stack exchange,提问作者Maqui
相关产品推荐
相关产品推荐

