使用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
相关产品推荐
相关产品推荐

