Как мне удалить каждый столбец, который содержит только значения из списка pandas

#pandas #multiple-columns #drop #isin

#pandas #несколько столбцов #удалить #isin

Вопрос:

Я хочу иметь возможность удалять все столбцы, которые имеют только значения из списка, который я передаю.

 list_of_drops = ['A','B']
d ={'C1':['A','A','A','B','B','B'],
    'C2':['A','C','A','A','A','A'],
    'C3':['A','B','B','A','B','B'],
    'C4':['A','A','A','A','A','A'],
    'C5':['A','A','B','AC','A','B'],
    'C6':['A','A','AD','A','B','A']}

df = pd.DataFrame (d, columns = ['C1','C2','C3','C4','C5','C6'])
  

В этом примере я хочу создать фрейм данных, содержащий только C1, C3 и C4.

Ответ №1:

Чтобы избавиться от столбцов только с одним значением:

 df= df.loc[:, (df != 'A').any(axis=0)]
  

Чтобы избавиться от столбцов, содержащих только значения из списка:

 df= df.loc[:, (~df.isin(list_of_drops)).any(axis=0)]