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

使用Matplotlib绘制Excel数据行时出现KeyError: 'TIME'错误的技术求助

解决KeyError: 'TIME'的问题

看起来你遇到的问题是pandas没有识别到名为'TIME'的列,这大概率是因为读取Excel文件时,表头(列名)没有被正确加载。下面一步步帮你排查和解决:

1. 先确认实际的列名是什么

在尝试获取列之前,先打印出DataFrame的列名,看看当前实际的表头是什么:

print(CO2emission.columns)

运行这段代码后,你会看到当前DataFrame使用的所有列名——大概率会发现没有'TIME'这个列,或者列名是其他形式(比如带空格、拼写错误,甚至表头被当成了数据行)。

2. 检查Excel读取的参数是否正确

你当前用了skiprows=3,这会跳过Excel文件的前3行,把第4行作为表头。但根据你描述的"年份位于一行,所有国家位于一列"的结构,很可能列名所在的行没有被设为表头:

  • 如果你的列名(包括'TIME')在Excel的第4行(行号从1开始),那skiprows=3是对的;但如果列名在更早的行(比如第3行),那你应该调整参数:
    # 假设列名在Excel的第3行(对应0-based索引为2),用header指定表头行
    CO2emission = pd.read_excel(ExcelEmission, 'Sheet 1', header=2)
    
  • 如果前几行是无关的说明文字需要跳过,同时指定表头行:
    # 跳过前2行,把第3行作为表头
    CO2emission = pd.read_excel(ExcelEmission, 'Sheet 1', skiprows=2, header=0)
    

3. 额外的小问题提醒

你的代码里读取CSV的一行有语法错误:

studentlist = pd.read_csv(r"xxx.csv",";")

应该改成指定分隔符参数:

studentlist = pd.read_csv(r"xxx.csv", sep=";")

虽然这和当前的KeyError无关,但会导致CSV读取失败,建议修正。

验证方法

调整参数后,再运行CO2emission.head(),看看输出的表头是否包含'TIME'和'Denmark',确认列名正确后再尝试绘图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:32:28