Как создать новый столбец с результатом сравнения других столбцов?

df = pd.DataFrame(data={'M':[1], 'M1':[1,1],'M3':[1,15],'M4':[1,25],'M5':[1,20]})

Как мне создать новый столбец, который будет содержать значение True, если скажем df.M5 будет больше хотя бы одного значения из df.M1,df.M2,df.M3 или df.M4, или False если df.M5 меньше тех значений?


Ответы (1 шт):

Автор решения: MaxU

Для этого достаточно сравнить df["M5"] с максимальным значением каждой строки (исключая столбец M5).

Пример:

In [399]: df
Out[399]: 
   M  M1  M3  M4  M5
0  1   1   1   1   1
1  0   1  15  25  20
2  1   2   3   4  10

In [400]: res = df.drop(columns=["M5"]).max(axis=1).lt(df["M5"])

In [401]: res
Out[401]: 
0    False
1    False
2     True
dtype: bool
→ Ссылка