Условная операция над одним столбцом Pandas DF на основе значения другого столбца - PullRequest
3 голосов
/ 16 мая 2019

Ниже приведен кадр данных pandas с двумя столбцами.

df = pd.DataFrame({'quantity':[15, 30, 35, 20], 'sign':[1,1,2,1]})

Я хочу применить условный оператор и умножить значение quantity в каждой строке на -1, если соответствующее значение sign вэта строка равна 2. Я не хочу создавать новый столбец.Я просто хочу применить это к столбцу quantity.

Я пытался использовать .loc и .apply(lamda x:), но я не должен применять их правильно.Любая помощь приветствуется.

1 Ответ

3 голосов
/ 16 мая 2019

Используйте DataFrame.loc с маской на Series.eq для равенства и кратного по скаляру:

df = pd.DataFrame({'quantity':[15, 30, 35, 20], 'sign':[1,1,2,1]})

df.loc[df['sign'].eq(2), 'quantity'] *=  - 1
print (df)
   quantity  sign
0        15     1
1        30     1
2       -35     2
3        20     1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...