Панды фильтруют фрейм данных по одному условию в нескольких столбцах - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть фрейм данных с 30 столбцами, каждая ячейка содержит 1 или 0.

Я бы хотел отфильтровать фрейм данных для любого 1 из 4 конкретных столбцов == 1.

Прямо сейчас, это должны быть цепочки масок вроде:

df[(df['col1'] == 1) | (df['col2'] == 1) | (df['col3'] == 1) | (df['col4'] == 1)]

Есть ли более простой и масштабируемый способ сделать это?Что-то вроде составления списка имен столбцов и использования записи среза для проверки всех логических условий за один раз?:

col_list = ['col1', 'col2', 'col3', 'col4']

df[df[col_list] == 1]

1 Ответ

0 голосов
/ 05 декабря 2018

Попробуйте это:

col_df=list(df) # get all the column names 
filtered_df=df[df[col_df].any(1)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...