Извиняюсь за вопрос noob, но я борюсь с python условностями.
Имею следующий фрейм данных:
id bonus
1 1.5
2 1.12
3 1.09
4 0.9
5 0.74
6 0.83
У меня есть верхний и нижний предел переменных:
upper_limit = 1.2
lower limit = 0.8
Попытка написать условие, которое: 1) Проверяет, находится ли бонус выше или ниже порогового значения. 2) Создает новый столбец, который гарантирует, что значение не будет go выше или ниже порогового значения. Если значение бонуса находится в пределах диапазона, оно не меняется.
Должно выглядеть так:
id bonus bonus_capped
1 1.5 1.2
2 1.12 1.12
3 1.09 1.09
4 0.9 0.9
5 0.74 0.8
6 0.83 0.83
Мой код:
conditions = [df["bonus"] > upper_limit, df["bonus"] < lower_limit]
choices = [upper_limit, lower_limit]
df["bonus_capped"] = np.select(conditions, choices)
print(df)
, но вывод I Получаю только исправляя одно условие и возвращая нули для остальных. Чего мне не хватает?
id bonus bonus_capped
1 1.5 0
2 1.12 0
3 1.09 0
4 0.9 0
5 0.74 0.8
6 0.83 0