отобрать столбцы из DataFrame не удовлетворяющие условию

Задача: из исходного DataFrame отобрать все столбцы, названия которых не содержатся в заданном списке имен.

Пример:

index a  b  x  d  y  f
1     0  1  0  1  0  1

Надо отобрать все столбцы, кроме x,y.

Ожидаемый результат:

index a  b  d  f
1     0  1  1  1

В документации нашел только как фильтровать с использованием тильды (по булеву индексу), но синтаксиса для отбора колонок придумать не могу.


Ответы (2 шт):

Автор решения: MaxU

воспользуйтесь DataFrame.drop(columns=[...]):

res = df.drop(columns=['x','y'])

или:

res = df.loc[:, df.columns.difference(['x','y'])]

результат:

In [26]: res
Out[26]:
       a  b  d  f
index
1      0  1  1  1
→ Ссылка
Автор решения: strawdog
showme = ['a', 'b', 'd', 'f']
print(df[showme])
      a  b  d  f
index            
1      0  1  1  1
→ Ссылка