如何在没有列名或行名的pandas中选择列和行?

Eka*_*Eka 7 python pandas

我有像这样的pandas数据帧(df)

                         Close      Close     Close Close       Close
Date                                                                 
2000-01-03 00:00:00        NaN        NaN       NaN   NaN   -0.033944
2000-01-04 00:00:00        NaN        NaN       NaN   NaN   0.0351366
2000-01-05 00:00:00  -0.033944        NaN       NaN   NaN  -0.0172414
2000-01-06 00:00:00  0.0351366  -0.033944       NaN   NaN -0.00438596
2000-01-07 00:00:00 -0.0172414  0.0351366 -0.033944   NaN   0.0396476
Run Code Online (Sandbox Code Playgroud)

R如果我要选择第五列

five=df[,5]
Run Code Online (Sandbox Code Playgroud)

没有第5列

rest=df[,-5]
Run Code Online (Sandbox Code Playgroud)

如何使用pandas dataframe执行类似的操作

我在熊猫中试过这个

five=df.ix[,5]
Run Code Online (Sandbox Code Playgroud)

但它给出了这个错误

 File "", line 1
    df.ix[,5]
           ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

piR*_*red 6

使用iloc.它明确地是基于位置的索引器. ix如果索引是基于整数的,则可以是两者并且会混淆.

df.iloc[:, [4]]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

除了第五列以外的所有内容

slc = list(range(df.shape[1]))
slc.remove(4)

df.iloc[:, slc]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或者等价的

df.iloc[:, [i for i in range(df.shape[1]) if i != 4]]
Run Code Online (Sandbox Code Playgroud)


Han*_*han 2

如果你想要第五列:

df.ix[:,4]
Run Code Online (Sandbox Code Playgroud)

将冒号插入其中以获取该列的所有行。

要排除第五列,您可以尝试:

df.ix[:, (x for x in range(0, len(df.columns)) if x != 4)]
Run Code Online (Sandbox Code Playgroud)

  • 已放弃使用“.ix”:改用“.iloc”。 (2认同)