我想获取数据框的第一列,第二列和第四列,即列c_a,c_b,c_d
,我的代码有什么问题?
我发布了我的代码,数据(123.csv)和错误消息,
sample = pd.read_csv('123.csv', header=None, skiprows=1,
dtype={0:str, 1:str, 2:str, 3:float})
sample.columns = pd.Index(data=['c_a', 'c_b', 'c_c', 'c_d'])
sample['c_d'] = sample['c_d'].astype('int64')
print sample.shape # output (3, 4)
X = sample.iloc[0, 1, 3]
raise IndexingError('Too many indexers')
pandas.core.indexing.IndexingError: Too many indexers
123.csv的内容,
c_a,c_b,c_c,c_d
hello,python,pandas,0.0
hi,java,pandas,1.0
ho,c++,numpy,0.0
答案 0 :(得分:2)
您需要使用df.iloc[:, [0, 1, 3]]
代替(或df[[0, 1, 3]]
)。
逗号分隔行索引器和列索引器。
答案 1 :(得分:2)
尝试
X = sample[['c_a', 'c_b', 'c_d']]
比使用iloc
更明确。