Как применить предложение if ... else ко всему столбцу в Python3? - PullRequest
0 голосов
/ 16 июня 2019

Я хотел бы взять набор значений в столбце df и применить поправочный коэффициент в зависимости от значения отдельного столбца.Я хотел бы запустить предложение if ... else, которое добавляет другое значение в зависимости от значения в первом столбце.

Я пробовал следующее:

if df['A'] > 5:
    df['B'] = df['B']+2
else df['B']=df['B']-2

Я быожидайте, что строки в столбце A, которые больше 5, будут иметь 2, добавленные к ним в столбце B, и те, у которых не должно быть 2, взятых из них.Вместо этого я получаю сообщение об ошибке, в котором говорится, что значение истинности ряда неоднозначно.Я думаю, это довольно просто, но ответы, которые я нашел на Stackoverflow, похоже, относятся к другому языку программирования.

1 Ответ

1 голос
/ 16 июня 2019

Вы можете использовать:

   A  B
0  6  0
1  1  0

df.loc[df['A'] > 5, 'B'] += 2
df.loc[~(df['A'] > 5), 'B'] -= 2 # or df.loc[df['A'] <= 5, 'B'] -= 2

Результат:

   A  B
0  6  2
1  1 -2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...