首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何选择pandas中除一列之外的所有列?

如何选择pandas中除一列之外的所有列?
EN

Stack Overflow用户
提问于 2015-04-21 13:24:59
回答 9查看 540.3K关注 0票数 435

我有一个数据帧,如下所示:

代码语言:javascript
复制
import pandas
import numpy as np
df = DataFrame(np.random.rand(4,4), columns = list('abcd'))
df
      a         b         c         d
0  0.418762  0.042369  0.869203  0.972314
1  0.991058  0.510228  0.594784  0.534366
2  0.407472  0.259811  0.396664  0.894202
3  0.726168  0.139531  0.324932  0.906575

如何获取除column b之外的所有列

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2015-04-21 13:27:40

当列不是MultiIndex时,df.columns只是列名的数组,因此您可以这样做:

代码语言:javascript
复制
df.loc[:, df.columns != 'b']

          a         c         d
0  0.561196  0.013768  0.772827
1  0.882641  0.615396  0.075381
2  0.368824  0.651378  0.397203
3  0.788730  0.568099  0.869127
票数 622
EN

Stack Overflow用户

发布于 2016-06-09 13:38:42

不要使用ix。我是deprecated。最具可读性和最常用的方法是df.drop()

代码语言:javascript
复制
>>> df

          a         b         c         d
0  0.175127  0.191051  0.382122  0.869242
1  0.414376  0.300502  0.554819  0.497524
2  0.142878  0.406830  0.314240  0.093132
3  0.337368  0.851783  0.933441  0.949598

>>> df.drop('b', axis=1)

          a         c         d
0  0.175127  0.382122  0.869242
1  0.414376  0.554819  0.497524
2  0.142878  0.314240  0.093132
3  0.337368  0.933441  0.949598

请注意,在缺省情况下,.drop()不会就地运行;尽管名称不祥,但df不会受到此进程的影响。如果要从df中永久删除b,请执行df.drop('b', inplace=True)

df.drop()还接受标签列表,例如,df.drop(['a', 'b'], axis=1)将删除列ab

票数 335
EN

Stack Overflow用户

发布于 2016-08-28 22:05:30

代码语言:javascript
复制
df[df.columns.difference(['b'])]

Out: 
          a         c         d
0  0.427809  0.459807  0.333869
1  0.678031  0.668346  0.645951
2  0.996573  0.673730  0.314911
3  0.786942  0.719665  0.330833
票数 177
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29763620

复制
相关文章

相似问题

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