Написание условного оператора, который изменяет исходный объект, задавая границы для оценки риска

98
8

В настоящее время я пытаюсь получить оценку риска, которая находится между ~ (-0.5) и ~ 1.5 и помещает на нее границы, так что если она меньше 0, она будет установлена в ноль, а если она выше 1, это будет установлен на 1. Мне еще предстоит найти пример, когда первоначальный объект является тем, который был изменен, так как я не хочу просто создавать флаг или отдельные объекты, которые мне придется консолидировать позже. Пример pic моих данных ниже [1]

1

Я пробовал следующий код, у него есть проблема установки каждой отдельной строки на 1, я не уверен, как заставить ее оценивать каждую строку на отдельной основе и либо обойти ее, либо оставить ее в покое, исходя из условия

if df["Risk Score"].loc <= 0:
df["Risk Score"] = 0

elif df["Risk Score"].loc >= 1:
df["Risk Score"] = 1

спросил(а) 2018-01-15T19:21:00+03:00 2 года, 8 месяцев назад
1
Решение
115

Вам нужен метод клипа (работает в pandas 21 и выше):

df["Risk score"].clip(lower=0, uppper=1, inplace=True)

В более старых версиях pandas вы можете

df["Risk score"] = df["Risk score"].clip(lower=0, uppper=1)

или наиболее очевидным

df.loc[df["Risk score"] < 0, "Risk score"] = 0
df.loc[df["Risk score"] > 1, "Risk score"] = 1

ответил(а) 2018-01-15T19:53:00+03:00 2 года, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема