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

Python Pandas多列melt报错求助:KeyError提示Year列不存在

问题解决办法
  • 报错原因:你用pivot_table把Year设为DataFrame的索引后,它就不再是普通列了,melt的id_vars=["Year"]自然找不到这个列,所以触发KeyError。

两种可行的解决方式:

方式一:pivot时直接把Year保留为列

修改pivot_table的代码,执行后用reset_index()把索引转成列:

tourism5 = tourism4.pivot_table(index=["Year"], columns=["Tourists to Ireland", "Area of Residence"], values="VALUE").reset_index()

方式二:先重置索引再执行melt

如果不想改之前的pivot代码,先把索引转成普通列:

# 先重置索引,让Year变回列
tourism5 = tourism5.reset_index()
# 再执行melt,注意var_name要匹配原列的层级
tourism6 = tourism5.melt(id_vars=["Year"], var_name=["Tourists to Ireland", "Area of Residence"], value_name="VALUE")

注意点:

你原本写的var_name= ["Average Stay Nights", "Tourists Expenditure", "Tourists Number"]是错误的,因为tourism5的列层级是"Tourists to Ireland"和"Area of Residence",melt的var_name需要和这个层级对应,否则会导致列含义混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 07:30:55