通过在熊猫中的位置选择多个数据框列

aid*_*att 0 python select indices pandas

我有一个(大)数据框。如何按位置选择特定的列?例如第1..3、5、6列

我试图以这种方式而不是只删除column4,因为我的数据集中有很多行,我想按位置进行选择:

 df=df[df.columns[0:2,4:5]]
Run Code Online (Sandbox Code Playgroud)

但这给 IndexError: too many indices for array

DF输入

 Col1     Col2     Col3       Col4        Col5       Col6
 1        apple    tomato     pear        banana     banana
 1        apple    grape      nan         banana     banana
 1        apple    nan        banana      banana     banana
 1        apple    tomato     banana      banana     banana
 1        apple    tomato     banana      banana     banana
 1        apple    tomato     banana      banana     banana
 1        avacado  tomato     banana      banana     banana
 1        toast    tomato     banana      banana     banana
 1        grape    tomato     egg         banana     banana
Run Code Online (Sandbox Code Playgroud)

DF输出-所需

 Col1     Col2     Col3       Col5       Col6
 1        apple    tomato     banana     banana
 1        apple    grape      banana     banana
 1        apple    nan        banana     banana
 1        apple    tomato     banana     banana
 1        apple    tomato     banana     banana
 1        apple    tomato     banana     banana     
 1        avacado  tomato     banana     banana     
 1        toast    tomato     banana     banana     
 1        grape    tomato     banana     banana
Run Code Online (Sandbox Code Playgroud)

jpp*_*jpp 7

您可以通过以下方式选择第 0、1、4 列:

\n\n
df.iloc[:, [0, 1, 4]]\n
Run Code Online (Sandbox Code Playgroud)\n\n

您可以在索引和选择数据中阅读更多相关内容。

\n\n
\n

\xe2\x80\xa2 iloc 主要是基于整数位置(从轴的 0 到 length-1),但也可以与布尔数组一起使用。如果请求的索引器越界,.iloc 将引发 IndexError,允许越界索引的切片索引器除外。(这符合 python/numpy 切片语义)。允许的输入有:

\n\n

\xe2\x97\xa6 一个整数,例如 5

\n\n

\xe2\x97\xa6 整数列表或数组 [4, 3, 0]

\n\n

\xe2\x97\xa6 整数为 1:7 的切片对象

\n\n

\xe2\x97\xa6 布尔数组

\n\n

\xe2\x97\xa6 具有一个参数的可调用函数(调用 Series、DataFrame\n 或 Panel),并返回用于索引的有效输出(上面的\n 之一)

\n
\n


WeN*_*Ben 5

你需要的是numpy np.r_

df.iloc[:,np.r_[0:2,4:5]]
Out[265]: 
   Col1     Col2    Col5
0     1    apple  banana
1     1    apple  banana
2     1    apple  banana
3     1    apple  banana
4     1    apple  banana
5     1    apple  banana
6     1  avacado  banana
7     1    toast  banana
8     1    grape  banana
Run Code Online (Sandbox Code Playgroud)