Existe-t-il un moyen de sélectionner toutes les colonnes sauf une dans un objet pandas DataFrame? J'ai vu des moyens de supprimer une colonne, mais je ne veux pas le faire.
utilisez la méthode drop
:
df.drop(column_name, axis=1)
df.loc[:, df.columns != col]
où col
est le nom de la colonne à omettre.
vous pouvez simplement sélectionner les colonnes que vous voulez sans supprimer ou supprimer:
collist = ['col1', 'col2', 'col3']
df1 = df[collist]
Il suffit de passer une liste des colonnes que vous désirez
Vous pouvez également récupérer la liste des colonnes, puis sélectionner dans cette liste
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'
Vous pouvez utiliser numpy pour construire un masque:
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]]
Juste en option, vous pouvez sélectionner toutes les colonnes sauf une (ou plusieurs) en utilisant une méthode de compréhension de liste et df.loc:
select = [x for x in df.columns if x != "column_you_don't_want"]
df.loc[:, select]
Si vous souhaitez supprimer plusieurs colonnes, vous pouvez essayer ceci:
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'] ]