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

使用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 02:57:30