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

Pandas数据合并报错求助:KeyError: 'Issue_Year'问题排查

解决Pandas合并时的KeyError: 'Issue_Year'问题

错误原因分析

你遇到的KeyError核心问题是合并对象的类型错误:
你用rate_data_t.iloc[1]提取的是单行的Series,而不是DataFrame。当Pandas尝试执行merge时,它会把Series的索引当作列名,把Series的值当作单行数据——但这个Series里并没有名为"Issue_Year"的列(因为它是原DataFrame的一行,索引是原列名,值是该行的内容),所以自然找不到合并键,触发KeyError。

修复方案

要解决这个问题,你需要确保合并的右侧是一个保留原列名的DataFrame,而不是Series。只需要把提取单行的方式改成双层方括号即可:

data_locked = data_locked.merge(rate_data_t.iloc[[1]], on="Issue_Year", how='left')

iloc[[1]]会返回一个包含单行的DataFrame,保留了原DataFrame的所有列名(包括"Issue_Year"),这样merge就能正确识别合并键了。

额外验证步骤

为了确保合并顺利,你可以额外做两个检查:

  • 确认rate_data_t.iloc[[1]]中确实存在"Issue_Year"列:可以用print(rate_data_t.iloc[[1]].columns)查看列名列表。
  • 确认两个DataFrame的"Issue_Year"列类型完全一致:虽然你提到已经转成float,但可以用以下代码验证:
    print(data_locked['Issue_Year'].dtype)
    print(rate_data_t['Issue_Year'].dtype)
    
    如果类型有细微差异(比如一个是float32,一个是float64),可以统一转成相同类型后再合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 17:17:32