Нужна помощь с использованием Loc для корзины и замены номеров

У меня есть столбец с числовыми значениями. Я хочу определить, находится ли число в столбце выше или ниже числа 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]

Пожалуйста, включите код для инициализации примера kraken. Как написано, кажется, вы ожидаете, что мы напишем это сами.

tdelaney 14.12.2020 21:47

попытался добавить некоторые детали, чтобы помочь. Это больше о синтаксисе, в котором я запутался

Arica Christensen 14.12.2020 21:53

Поскольку это вопрос о пандах, этот тег у вас должен быть. Это не связано с jupyter, np или uilocalnotification, поэтому удалите эти теги.

Nano Tellez 14.12.2020 22:25
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
127
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Некоторые вопросы:

  1. Ваш синтаксис внутри loc. Вы передаете список с фреймом данных и строкой внутри него, я даже не уверен, если честно, что там происходит. Ниже я покажу, как я обычно работаю с loc, но, возможно, вы не ошибаетесь, я просто не уверен в источнике вашей проблемы.
  2. Вам не нужно | между двумя заданиями.
  3. Затем следует 2. Вы должны инициировать столбец «high_or_low», прежде чем присваивать ему значения с помощью 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 и добавить серию в виде столбца вашего фрейма данных. Для этого у вас есть два варианта:

  • Один из них — преобразовать серию в int, используя метод pandas astype():
kraken["high_or_low"] = (kraken["Incident_Duration"] >= 30).astype(int)
  • Другой вариант — умножить на 1, что приведет к тому, что панды приведут его к int:
kraken["high_or_low"] = (kraken["Incident_Duration"] >= 30) * 1

Другие вопросы по теме

Используя itertools, Melt и Groupby правильно подсчитывают пары событий для каждого значения атрибута, используя Pandas
Среднее значение по категории за последний N раунд в Pandas и отставание от него
Превратите строковое представление интервала в фактический интервал в пандах
Обратный Geopy возвращает ключевые ошибки для «города», «района» и «района», несмотря на то, что они находятся в объекте ответа JSON
Панды присваивают значения фрейму данных в зависимости от значений в другом с теми же размерами проблемы/вопроса
Изменить значение определенного столбца в подгруппах данных в пандах в зависимости от условия
ValueError: неверный узел или строка: 0 в Pandas
Рассчитать средний доход на пользователя в месяц
Python Pandas Dataframe, хранящий значения следующей строки
Поднять ValueError («Ввод содержит NaN») ValueError: Ввод содержит NaN при попытке построить модель машинного обучения