Generate the dataframe:
import pandas as pd
df = pd.DataFrame({
"0": [True, True, True, True, True],
"1": [False, False, False, False, False],
"2": [False, False, False, False, False],
"3": [False, False, False, False, False],
"4": [False, True, False, False, False]
})
Get the number of true per row:
df = df.assign(number_of_true= lambda x: x.sum(axis=1))
0 1 2 3 4 number_of_true
0 True False False False False 1
1 True False False False True 2
2 True False False False False 1
3 True False False False False 1
4 True False False False False 1
Select row that do not have two True
on one row:
df = df.query("number_of_true != 2")
One liner:
(
df
.assign(number_of_true= lambda x: x.sum(axis=1))
.query("number_of_true != 2")
.drop(columns="number_of_true") #clean dataframe
)
Output:
0 1 2 3 4
0 True False False False False
2 True False False False False
3 True False False False False
4 True False False False False