У меня есть dataframe с 30 столбцами, каждая ячейка содержит 1 или 0.
Я хотел бы отфильтровать dataframe для каждого из 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]
Попробуй это:
col_df=list(df) # get all the column names
filtered_df=df[df[col_df].values==1]
df = df[df[col_list].eq(1).any(1)]
.df[df[col_list].any(1)]