如何应用如果..else 子句到 Python3 中的整个列



我想在 df 列中获取一组值,并根据单独列的值应用校正因子。我想运行一个如果...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

最新更新