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

时间:2019-06-16 17:17:42

标签: 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上找到的答案似乎都与另一种编程语言有关。

1 个答案:

答案 0 :(得分:1)

您可以使用:

   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