【问题标题】:exception when get a subset of a pandas data frame获取熊猫数据框的子集时出现异常
【发布时间】:2017-01-03 18:59:03
【问题描述】:

我想获取数据框的第一、二、四列,即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

【问题讨论】:

    标签: python python-2.7 pandas numpy dataframe


    【解决方案1】:

    试试

    X = sample[['c_a', 'c_b', 'c_d']]
    

    比使用iloc 更明确。

    【讨论】:

    • 感谢您的帮助,bananafish,为回复投票。
    【解决方案2】:

    您需要改用df.iloc[:, [0, 1, 3]](或df[[0, 1, 3]])。

    逗号分隔行索引器和列索引器。

    【讨论】:

    • 很好,将在每个时间限制 9 分钟内将其标记为答案。 :)
    猜你喜欢
    • 2013-04-14
    • 2015-05-10
    • 2021-06-02
    • 2016-03-28
    • 2021-04-11
    • 1970-01-01
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多