我想在 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