df = pd.DataFrame(np.random.randint(0, 2, (100, 3)), columns=list('ABC'))
assert np.all(list(filter(df, 1, 'A', 'B')) == df[(df.A == 1) & (df.B == 1)])
assert np.all(list(filter(df, 1)) == df)
assert np.all(list(filter(df, [1, 0], 'A', 'B')) == df[(df.A == 1) & (df.B == 0)])
pandas: Можно ли фильтровать фрейм данных с произвольно длинными логическими критериями?