Pandas合并触发KeyError: 'state'但两DataFrame均含该键的问题
错误原因分析
出现KeyError: 'state'的核心原因是其中一个DataFrame的列名存在隐藏的空格或不可见字符,导致表面上显示有state列,但实际列名并非准确的'state'字符串。
从提供的DataFrame示例能看出:
- 示例数据行中,
state、county、tract列的值和左侧数值列的间隔明显大于其他列,说明这些列名可能带有前导或尾随空格(比如' state'或'state ')。 - 手动整理的列名列表忽略了实际DataFrame列名中的不可见字符,而Pandas的合并操作会严格匹配列名的每一个字符,无法识别带空格的列名为
'state'。
验证与解决方法
- 先打印两个DataFrame的实际列名,确认是否存在空格或特殊字符:
print(row_df.columns.tolist()) print(second_df.columns.tolist()) - 如果发现列名有空格,用
str.strip()清理所有列名:row_df.columns = row_df.columns.str.strip() second_df.columns = second_df.columns.str.strip() - 清理后再执行合并操作即可解决问题。
内容的提问来源于stack exchange,提问作者Crawdad_Buckwheat
相关产品推荐
相关产品推荐

