web-dev-qa-db-fra.com

Récupérer le cadre de données de toutes les colonnes sauf une

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.

55
user1802143

utilisez la méthode drop:

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

col est le nom de la colonne à omettre.

41
lev

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'
14
EdChum

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

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]
1
Ivan Calderon
df[ df.columns[df.columns!='not_this_column'] ]
0
pgalilea