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