关于python:检索除一个指定列之外的所有列的DataFrame

Retrieve DataFrame of all but one specified column

本问题已经有最佳答案,请猛点这里访问。

是否有一种方法可以选择熊猫数据帧对象中除一列以外的所有列?我已经看到了删除列的方法,但我不想这样做。


采用drop法:

1
df.drop(column_name, axis=1)


1
df.loc[:, df.columns != col]

其中,col是要删除的列的名称。


您只需选择所需的列,而不必删除或删除:

1
2
collist = ['col1', 'col2', 'col3']
df1 = df[collist]

只需传递所需列的列表

您还可以检索列列表,然后从该列表中选择

1
2
3
4
5
6
7
8
collist = df.columns.tolist()
# you can now select from this list any arbritrary range
df1 = df[collist[0:1]]
# or remove a column
collist.remove('col2')
# now select
df1 = df[collist]
# df1 will now only have 'col1' and 'col3'


您可以使用numpy构建一个蒙版:

1
2
3
4
5
6
import numpy as np
columns = df.columns
mask = np.ones(columns.shape, dtype=bool)
i = 4 #The specified column that you don't want to show
mask[i] = 0
df[columns[mask]]


作为一个选项,您可以使用列表理解和df.loc方法选择除一列(或多列)之外的所有列:

1
2
select = [x for x in df.columns if x !="column_you_don't_want"]
df.loc[:, select]

如果要删除多个列,可以尝试此操作:

1
2
3
columns_dont_want = ["col1","col2"]
select = [x for x in df.columns if x not in columns_dont_want]
df.loc[:, select]


1
df[ df.columns[df.columns!='not_this_column'] ]