Retrieve DataFrame of all but one specified column
本问题已经有最佳答案,请猛点这里访问。
是否有一种方法可以选择熊猫数据帧对象中除一列以外的所有列?我已经看到了删除列的方法,但我不想这样做。
采用
1 | df.drop(column_name, axis=1) |
1 | df.loc[:, df.columns != 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'] ] |
。