问题是您的列名中有 空格 ;这是保存数据并按完成方式加载数据框后得到的结果:
df.columns# result:Index(['LABEL', ' F1', ' F2', ' F3', ' F4', ' F5', ' X', ' Y', ' Z', ' C1', ' C2'], dtype='object')
因此,将这些空格放回列名称中可消除错误:
train_features = train[[' F1',' F2',' F3',' F4',' F5',' X',' Y',' Z',' C1',' C2']] # works OK
但是可以说,在列名中使用空格 不是一个
好习惯(您看到了会发生什么!);因此最好在加载过程中消除它们。这是执行此操作的端到端代码(还消除了不必要的第二个数据帧):
import pandas as pddf= pd.read_csv("lettera.csv", delimiter=',', header=None, skiprows=1, names=['LABEL','F1','F2','F3','F4','F5','X','Y','Z','C1','C2'])from sklearn.model_selection import train_test_splittrain, test = train_test_split(df, test_size = 0.2)train_features = train[['F1','F2','F3','F4','F5','X','Y','Z','C1','C2']] # works OK

![如何解决KeyError:u“ [Column([..],dtype ='object')]中都不存在” 如何解决KeyError:u“ [Column([..],dtype ='object')]中都不存在”](http://www.mshxw.com/aiimages/31/661167.png)
