У меня есть столбец с числовыми значениями. Я хочу определить, находится ли число в столбце выше или ниже числа 30, и заменить его на 1, если оно выше, и на 0, если оно ниже. В настоящее время я использую .loc, но не могу понять | аннотация
kraken = pd.read_csv(data_path + 'ITSM_Master_2020-10-05.csv')
kraken.loc[[kraken['Incident_Duration']<30, 'high_or_low']=0 |
[kraken['Incident_Duration']>=30, 'high_or_low']=1]
что-то вроде того? Я помещаю числа в столбец, называемый высоким или низким Длительность инцидента — это большой столбец с числами в диапазоне, например, от 0 до 100.
Incident Duration = [25,26,50,52,50,100,5]
попытался добавить некоторые детали, чтобы помочь. Это больше о синтаксисе, в котором я запутался
Поскольку это вопрос о пандах, этот тег у вас должен быть. Это не связано с jupyter, np или uilocalnotification, поэтому удалите эти теги.
Некоторые вопросы:
loc
. Вы передаете список с фреймом данных и строкой внутри него, я даже не уверен, если честно, что там происходит. Ниже я покажу, как я обычно работаю с loc
, но, возможно, вы не ошибаетесь, я просто не уверен в источнике вашей проблемы.|
между двумя заданиями.loc
. Итак, давайте начнем его со значениями 0 и поместим 1 везде, где это необходимо для вашего условия.Решение:
kraken['high_or_low'] = 0
kraken.loc[kraken['Incident_Duration'] >= 30, 'high_or_low'] = 1
Нет необходимости использовать loc
. Если вы просто сделаете kraken["Incident_Duration"] >= 30
, вы получите логический ряд, который сообщает вам для каждой строки, было ли выполнено условие. Итак, все, что осталось, это преобразовать это в 0
или 1
и добавить серию в виде столбца вашего фрейма данных. Для этого у вас есть два варианта:
astype()
:kraken["high_or_low"] = (kraken["Incident_Duration"] >= 30).astype(int)
int
:kraken["high_or_low"] = (kraken["Incident_Duration"] >= 30) * 1
Пожалуйста, включите код для инициализации примера
kraken
. Как написано, кажется, вы ожидаете, что мы напишем это сами.