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

使用CSV文件绘制散点图遇KeyError,求修复方案(含3D散点图需求)

解决2D散点图KeyError问题及实现双变量3D散点图

先解决KeyError问题

出现KeyError的核心原因是代码中指定的列名在CSV文件里不存在,或列名匹配错误,按以下步骤排查:

  • 确认CSV实际列名:加载数据后添加代码打印所有列名,检查是否和你用的fertilizer_addition、corn_weight完全一致(注意空格、大小写、下划线/空格的差异):
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("C:/Users/theet/Desktop/ITMLA/Assignment/merka_agri_corn_experiment.csv")
# 打印所有列名
print(df.columns.tolist())
# 查看前5行数据,确认列与内容对应
print(df.head())

比如如果CSV里列名是fertilizer addition(空格代替下划线),代码里就要写成df["fertilizer addition"]。

  • 检查CSV读取参数:如果CSV用分号、制表符等其他分隔符,需指定sep参数,示例:
df = pd.read_csv("你的文件路径", sep=";") # 分隔符为分号时使用

实现双变量的3D散点图

3D散点图需要三个坐标轴,仅用两个变量的话,可以把其中一个变量映射到z轴(比如设为固定值,或重复其中一个变量),示例代码如下:

import pandas as pd
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

# 确保列名正确后加载数据
df = pd.read_csv("C:/Users/theet/Desktop/ITMLA/Assignment/merka_agri_corn_experiment.csv")
x = df["fertilizer_addition"] # 替换为实际正确的列名
y = df["corn_weight"] # 替换为实际正确的列名
# 用固定值作为z轴,也可以用x或y的重复值
z = [0]*len(x)

# 创建3D绘图对象
fig = plt.figure(figsize=(10,7))
ax = fig.add_subplot(111, projection='3d')
ax.scatter(x, y, z, c='blue', marker='o')

# 设置图表标签和标题
ax.set_title("30天实验:施肥量与玉米重量的3D关系")
ax.set_xlabel("施肥量")
ax.set_ylabel("玉米重量")
ax.set_zlabel("Z轴(固定值)")

plt.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 17:45:46