Как создать новый столбец с результатом сравнения других столбцов?
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