Pandas使用loc索引已存在列时抛出KeyError异常问题咨询
错误原因
- pandas中
loc的第一定位参数是行索引标签,你直接传入列名'文件位置'时,pandas会优先去行索引中匹配对应值,匹配失败就抛出KeyError。 - 若要用
loc取列,需要遵循df.loc[行选择器, 列选择器]的标准语法,选择所有行时行参数填:即可。
解决方案
方案1:按loc标准语法取列
# 取所有行的「文件位置」列 print(df.loc[:, '文件位置'])
方案2:直接用列名索引取值(更常用)
无需调用loc,直接通过方括号加列名取对应列即可:
print(df['文件位置'])
特殊情况排查
如果以上方法仍报错,需检查列名是否包含不可见特殊字符(比如全角空格、零宽空格、换行符等),str.strip()无法清除所有类型的特殊空白符,可执行以下代码确认列名实际内容:
for col in df.columns: print(f"列名显示值:{col},原始字符:{repr(col)}")
如果对应列的原始字符存在多余特殊字符,针对性做字符替换处理即可。
内容的提问来源于stack exchange,提问作者ry jin
相关产品推荐
相关产品推荐

