如何将if…else子句应用于Python3中的整个列?

如何将if…else子句应用于Python3中的整个列?,python,python-3.x,if-statement,Python,Python 3.x,If Statement,我想在df列中取一组值,并根据单独列的值应用一个校正因子。我想运行一个if…else子句,它根据第一列中的值添加不同的金额 我尝试了以下方法: if df['A'] > 5: df['B'] = df['B']+2 else df['B']=df['B']-2 我希望A列中大于5的行在B列中添加2个,而不包含2个。相反,我得到了一条错误消息,说一系列的真值是模糊的。 我想这是相当基本的,但我在Stackoverflow上找到的答案似乎都与另一种编程语言有关。您可以使用: A

我想在df列中取一组值,并根据单独列的值应用一个校正因子。我想运行一个if…else子句,它根据第一列中的值添加不同的金额

我尝试了以下方法:

if df['A'] > 5:
    df['B'] = df['B']+2
else df['B']=df['B']-2
我希望A列中大于5的行在B列中添加2个,而不包含2个。相反,我得到了一条错误消息,说一系列的真值是模糊的。 我想这是相当基本的,但我在Stackoverflow上找到的答案似乎都与另一种编程语言有关。

您可以使用:

   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