我想在df列中获取一组值,并根据单独列的值应用校正因子。我想运行一个if ... else子句,该子句根据第一列中的值添加不同的金额。
我尝试了以下操作:
if df['A'] > 5:
df['B'] = df['B']+2
else df['B']=df['B']-2
我希望A列中大于5的行在B列中添加2行,而其他行则不取2。取而代之的是,我收到一条错误消息,指出一个系列的真值不明确。 我想这是相当基本的,但是我在Stackoverflow上找到的答案似乎都与另一种编程语言有关。
答案 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