Как я могу использовать pandas assign для создания нового столбца с несколькими условиями?
У меня есть пандас dataframe со следующими столбцами:
Date, Variable 1, rank_pct
Я пытаюсь использовать assign для создания нового столбца с именем "ls", в котором есть 1, -1 или 0.
- Если rank_pct <0,10, поставьте 1 в столбце ls
- Если rank_pct>0,90, поместите -1 в столбец ls.
- Если rank_pct - что-то еще, поместите 0 в столбце.
Я не хочу использовать цикл for для итераций по каждой строке в столбце rank_pct, и я уже пробовал следующее (которое возвращает столбец с True/False:
data = data.assign(ls= data['rank_pct']<.10)
Есть ли какая-нибудь команда, которую я могу поместить в скобки, чтобы преобразовать T/F в 1, -1 и 0?
1 ответ
Вы можете использовать вложенные np.where:
data.assign(ls=np.where(data.rank_pct<.1, 1,
np.where(data.rank_pct>.9, -1, 0)))