检索除一个指定列之外的所有DataFrame

有没有办法select一个pandasDataFrame对象中的所有列,但只有一列? 我已经看到删除列的方法,但我不想这样做。

使用drop方法:

 df.drop(column_name, axis=1) 
 df.ix[:, df.columns != col] 

其中col是要省略的列的名称。

你可以select你想要的列而不删除或删除:

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

只要通过你想要的列的列表

您也可以检索列的列表,然后从列表中select

 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来构build一个蒙版:

 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[ df.columns[df.columns!='not_this_column'] ]