Python pandas查询CSV的Navn列报KeyError: 'Navn'错误如何解决
问题原因及修复方案
你遇到的KeyError: 'Navn'错误由以下2个问题导致,对应修复方案如下:
1. CSV分隔符配置错误,列拆分异常
你读取CSV时指定sep=";",但从打印的flowData.columns结果可以看到:表头内容被整体拼接成了第一个列名(列名内部包含逗号分隔的其他字段名),说明实际CSV文件的列分隔符是逗号(,)而非分号。你在列输出末尾看到的Navn是表头行错位拆分出来的孤立字段,并不是你预期的存储名称数据的目标列。
修复代码:
# 将分隔符修改为实际使用的逗号 flowData = pd.read_csv('CSV_mal.csv', sep=",", encoding='latin-1')
2. 列名存在不可见字符/字符串匹配兼容问题
修改分隔符后如果仍然报错,说明Navn列名前后存在不可见的空白字符(空格、制表符、特殊编码字符等),先执行列名清理操作即可。另外str.contains默认对列内空值返回NaN,直接用做索引会触发后续报错,需要加na=False参数过滤空值。
修复代码:
# 清理所有列名前后的空白字符 flowData.columns = flowData.columns.str.strip() # 筛选时兼容空值 idxLundtofte = flowData['Navn'].str.contains('Molleavaerket A/S', na=False)
内容的提问来源于stack exchange,提问作者Santiago A
相关产品推荐
相关产品推荐

