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

使用Pandas读取CSV构建AI模型时遭遇KeyError问题求助

KeyError问题排查与解决

问题原因

  • 多列选取语法错误:你的代码中选取多列时使用了data['col1','col2']的格式,这会被pandas识别为一个元组类型的键去查找列,但DataFrame中不存在这个元组作为列名,因此触发KeyError。正确的多列选取应该用列表包裹列名,即data[['col1','col2']]。
  • 重复列名导致的列名变化:你的CSV数据中存在重复列名(比如Butane、Alkylate等出现两次),pandas读取时会自动为重复列名添加后缀(如Butane.1、Alkylate.1),原代码中直接使用原始重复列名会找不到对应的列。

修正后的代码

import pandas as pd

# 读取数据
data = pd.read_csv(r'F:\OMS-Development\Python-AI Models\AI Model FHR-RVP Data.csv')

# 查看实际列名(可选,用于确认重复列的后缀)
print(data.columns.tolist())

# 正确选取多列(注意处理重复列名的后缀)
X = data[['BatchID', 'Butane', 'Alkylate', 'Virgin_Naphtha', 'Hydrotreated_Heavy_Naphtha', 
          'Light_hydrocracked_Naphtha', 'Light_hydrotreated_Naphtha', 'Butane.1', 'Alkylate.1', 
          'Virgin_Naphtha.1', 'Hydrotreated_Heavy_Naphtha.1', 'Light_hydrocracked_Naphtha.1', 
          'Light_hydrotreated_Naphtha.1', 'RVP_Blend']]

额外注意事项

  • 运行print(data.columns.tolist())可以查看pandas实际读取到的列名,确认重复列的后缀,避免因列名不匹配导致错误。
  • 如果业务逻辑中重复列代表不同含义(比如前一组是比例,后一组是实际值),建议提前修改CSV表头为唯一名称(如Butane_Ratio、Butane_Value),避免后续处理混淆。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 00:22:42