如何修复KeyError:“ [无索引(['0','3'],dtype ='object')]都不在熊猫的[列]中,用于无标题数据

时间:2019-11-01 08:56:00

标签: pandas dataframe

我正在尝试从无标题的.tsv文件中删除两列

df_train = pd.read_csv("train_sample.tsv", sep="\t", header=None)
df_train = df_train[['0', '3']]
df_train.head()

但是,这给了我错误:

KeyError: "None of [Index(['0', '3'], dtype='object')] are in the [columns]"

在某些类似情况下,问题是列名中有多余的空格或制表符,但不幸的是,当我尝试

for col in df_train.columns: 
    print(col)

似乎没有多余的字符。

此外,当我尝试其他技巧时,结果发现列名的类型为int而不是str。但是,当我尝试通过int选择列时,我只会遇到一些索引错误。

编辑:索引错误是由错字引起的,因此一切正常。可能应该删除此问题,因为df_train = df_train[['0', '3']]实际上按预期工作,但是在我的情况下,由于拼写错误导致索引错误似乎很相关。

1 个答案:

答案 0 :(得分:1)

由于header=None存在整数列,因此请使用[0, 3]代替['0', '3']

df_train = df_train[[0, 3]]