当前位置: 首页 > 知识库问答 >
问题:

如何选择所有列,除了熊猫中的一列?

宰父熙云
2023-03-14

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

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

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

共有3个答案

公良运锋
2023-03-14
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
强金鑫
2023-03-14

不要使用ix。它已被弃用。最具可读性和习惯用法的方法是df.drop()

>>> 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'],轴=1)将删除列ab

史英睿
2023-03-14

当列不是MultiIndex时,df.columns只是一个列名数组,因此您可以执行以下操作:

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
 类似资料:
  • 问题内容: 我有一个数据框看起来像这样: 我如何才能获得除以外的所有列? 问题答案: 当列不是MultiIndex时,仅是列名称的数组,因此您可以执行以下操作:

  • 问题内容: 我想基于列选择从现有数据框创建视图或数据框。 例如,我想从一个数据框创建一个数据框,该数据框包含其中的所有列(其中两个除外)。我尝试执行以下操作,但没有成功: 我究竟做错了什么?也许更笼统地说,熊猫必须采用什么机制来支持从数据帧中挑选和 排除 任意列集? 问题答案: 您可以删除不需要的列,也可以选择所需的列

  • 问题内容: 如何选择表中除一列以外的所有列? 我有将近259列,我不能在声明中提及258列。 还有其他方法吗? 问题答案: 您可以使用这种方法从除以下以外的所有列中获取数据:- 将所有数据插入临时表 然后从临时表中删除不需要的列 从临时表中获取数据(这将不包含已删除列的数据) 删除临时表 像这样的东西:

  • 问题内容: 是否可以选择除一列之外的所有列? 这是所有列名称:ID,名称,地址,年龄 我不想使用此select语句,因为我的表的列数彼此不同。 问题答案: declare @cols varchar(max), @sql varchar(max) SELECT @cols = STUFF ( ( SELECT DISTINCT ‘], [‘ + name FROM sys.columns wher

  • 问题内容: 我正在尝试使用select语句从某个MySQL表中获取除一个以外的所有列。有没有简单的方法可以做到这一点? 编辑:此表中有53列(不是我的设计) 问题答案: 实际上有一种方法,您当然需要具有执行此操作的权限… 更换

  • 问题内容: 假设我有一个数据框如下 现在,我希望a和b列不同的行。所以预期的输出是 我怎样才能做到这一点? 问题答案: 我喜欢可读性,请使用: 输出: