Поскольку ваши данные являются двоичными, вы можете использовать isin
с небольшим фокусом:
# set up
df = pd.DataFrame([[1,0,1,1,0],[0,1,0,0,1],[0,1,1,1,1]],
columns=[f'f{i}' for i in '12345'])
arr = np.array([[0,1,1,1,1],[1,0,1,1,0],[0,0,0,0,0]])
# is in:
s = (df[[f'f{i}' for i in '12345']]
.mul(2**np.arange(5)).sum(1) # convert binary to 5-bit int
.isin((arr * (2**np.arange(5))).sum(1) # convert binary to 5-bit int
)
)
df[s]
Вывод:
f1 f2 f3 f4 f5
0 1 0 1 1 0
2 0 1 1 1 1