Вы можете сравнить последние 3 столбца по последнему столбцу с не равным ne
(!=
), а затем добавить DataFrame.any
для проверки хотя бы одного True
по строкам:
print (df)
Table A B C Result
0 Round 0.2 0 1 True
1 Triangle 3.0 3 3 False
2 Penta 1.0 1 1 False
df['Result'] = df.iloc[:, -3:].ne(df.iloc[:, -1], axis=0).any(axis=1)
print (df)
Table A B C Result
0 Round 0.2 0 1 True
1 Triangle 3.0 3 3 False
2 Penta 1.0 1 1 False
Detail
print (df.iloc[:, -3:].ne(df.iloc[:, -1], axis=0))
A B C
0 True True False
1 False False False
2 False False False
Если первый столбец является индексным, решение упрощается и возможно сравнить все столбцы с любым столбцом:
df['Result'] = df.ne(df.iloc[:, -1], axis=0).any(axis=1)
print (df)
A B C Result
Table
Round 0.2 0 1 True
Triangle 3.0 3 3 False
Penta 1.0 1 1 False