首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pandas中按位置选择多个数据框列

在pandas中按位置选择多个数据框列
EN

Stack Overflow用户
提问于 2018-01-31 22:54:44
回答 5查看 13.5K关注 0票数 3

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

我尝试这样做,而不是简单地删除column4,因为我的dataset中有大量的行,我想按位置进行选择:

代码语言:javascript
复制
 df=df[df.columns[0:2,4:5]]

但这给了IndexError: too many indices for array

DF输入

代码语言:javascript
复制
 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

DF输出-所需

代码语言:javascript
复制
 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
EN

回答 5

Stack Overflow用户

发布于 2018-01-31 23:11:26

你需要的是numpy np.r_

代码语言:javascript
复制
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
票数 14
EN

Stack Overflow用户

发布于 2018-01-31 22:58:57

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

代码语言:javascript
复制
df.iloc[:, [0, 1, 4]]

你可以在Indexing and Selecting Data上阅读更多关于这方面的内容。

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

系列整数例如5系列整数的列表或数组4,3,0◦带有整数1:7的切片对象◦布尔数组◦具有一个参数的可调用函数(调用系列、系列或面板),并返回用于索引(上述之一)的有效输出

票数 4
EN

Stack Overflow用户

发布于 2018-01-31 23:01:23

使用pandas iloc方法:

代码语言:javascript
复制
df_filtered = df.iloc[:, [1,2,3,5,6]]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48545076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档