Вы можете получить значение max
каждой строки (ось = 1) и сравнить его со столбцом E
.Если это условие истинно, мы возвращаем 0, иначе мы возвращаем значение max
этой строки:
df['Result'] = np.where(df.iloc[:, 1:].max(axis=1).eq(df['E']), # our condition
0, # value if true
df.iloc[:, 1:].max(axis=1)) # value if false
print(df)
A B C D E Result
0 V 10 5 18 20 0
1 W 9 18 11 13 18
2 X 8 7 12 5 12
3 Y 7 9 7 8 9
4 Z 6 5 3 90 0
Объяснение
numpy.where
работает следующим образом:
np.where(condition, value if true, value if false)