Recuperar DataFrame de todas menos una columna especificada

¿Hay una manera de seleccionar todas las columnas excepto una en un objeto DataFrame de pandas? He visto formas de eliminar una columna, pero no quiero hacer eso.

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

donde col es el nombre de la columna a omitir.

simplemente puede seleccionar las columnas que desee sin eliminarlas ni eliminarlas:

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

Solo pasa una lista de las columnas que deseas

También puede recuperar la lista de columnas y luego seleccionar de esa lista

 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' 

Podrías usar numpy para construir una máscara:

 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]] 

Solo como una opción, puede seleccionar todas las columnas menos una (o muchas) usando una comprensión de lista y un método df.loc:

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

En caso de que quiera omitir más de una columna, puede intentar esto:

 columns_dont_want = ["col1", "col2"] select = [x for x in df.columns if x not in columns_dont_want] df.loc[:, select] 
 df[ df.columns[df.columns!='not_this_column'] ]