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

CSV数据可视化求助:绘制散点图出现KeyError: 'Success'报错

解决KeyError: 'Success' 的问题

嘿,我来帮你排查这个可视化时遇到的KeyError问题!这个报错说明你的代码尝试访问名为'Success'的键(列或索引),但你的DataFrame里并没有这个键。接下来我分几种常见情况给你分析和解决办法:

可能的原因1:列名拼写/格式不匹配

首先你得确认你的new_fail_df里到底有哪些列。先运行下面的代码看看所有列名:

print(new_fail_df.columns.tolist())

如果输出里没有Status_Mission,或者列名是其他形式(比如小写的status_mission、带空格的Status Mission),那就是你代码里的列名写错了。修正成正确的列名即可,比如:

# 假设正确列名是'Mission_Status',替换成你实际的数值列名
y = new_fail_df[new_fail_df['Mission_Status'] == 'Success']['任务数量']
plt.scatter(x, y)
plt.show()

可能的原因2:分组聚合后,状态值变成了索引

如果你是通过groupby('Status_Mission')来汇总数据的,那默认情况下Status_Mission的取值(比如'Success')会变成DataFrame的索引,而不是列。这时候直接用列名去取就会报错。你可以用两种方式解决:

方法A:把索引转回列

# 重置索引,让状态值重新成为列
new_fail_df = new_fail_df.reset_index()
# 然后筛选Success的行,取对应的数值列
y = new_fail_df[new_fail_df['Status_Mission'] == 'Success']['任务数量']

方法B:直接通过索引访问目标行

# 假设你汇总的数值列是'任务数量'
y = new_fail_df.loc['Success', '任务数量']

可能的原因3:变量误用导致的列名错误

如果你之前定义了Status_Mission = 'Success',然后写y = new_fail_df[Status_Mission],这相当于让代码去取列名为'Success'的列,但你的数据里并没有这个列,自然会报错。这时候你需要明确:你要筛选Status_Mission列中值为'Success'的行,然后提取对应的数值列,代码应该写成:

# 替换成你实际的数值列名,比如'任务数量'
y = new_fail_df[new_fail_df['Status_Mission'] == 'Success']['任务数量']

最后还要提醒你:确保x变量的长度和y的长度一致,不然散点图也会无法正常运行哦!

内容的提问来源于stack exchange,提问作者Արման Հարությունյան

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 21:57:31