使用Matplotlib绘制CSV天气数据折线图时出现KeyError问题
问题原因与解决办法
核心原因
你代码中使用的列名date_time、wind_speed和CSV文件的实际列名不匹配。从你提供的CSV截图来看,日期相关列的实际名称是日期时间,风速列是风速,并非你代码里的英文命名。
验证方式
读取CSV后先打印所有列名,确认实际列名:
print(df.columns.tolist())
执行后就能看到CSV里的真实列名,和你代码中的名称对比就能明确差异。
解决方法
方法1:直接使用实际列名修改代码
把代码中的列名替换为CSV里的中文名称,同时补充图表显示的代码:
import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('Censored') x = df['日期时间'] y = df['风速'] plt.plot(x, y) plt.xticks(rotation=45) # 可选:旋转横轴日期标签,避免重叠 plt.show()
方法2:读取时重命名列(适合习惯用英文列名的场景)
如果偏好英文列名,可以在读取CSV时直接替换列名,注意要和原CSV的列顺序一一对应:
# 假设CSV只有日期时间、风速两列,如有其他列需补充到names列表中 df = pd.read_csv('Censored', names=['date_time', 'wind_speed'], header=0) x = df['date_time'] y = df['wind_speed'] plt.plot(x, y) plt.show()
额外注意
如果实际列名前后有隐藏空格,导致匹配失败,可以先清理列名再操作:
df.columns = df.columns.str.strip() # 去掉所有列名前后的空格
内容的提问来源于stack exchange,提问作者CWK
相关产品推荐
相关产品推荐

