我希望有一个条件,说明预测中的价值是否为' < 0然后'返回' = 0.
这是我的数据框
returns prediction
0 -1.005705 0.999999
1 0.005952 1.000000
2 0.000000 -0.999891
3 0.020000 -1.000000
4 0.000000 1.000000
5 0.005000 1.000000
6 0.000000 -0.999984
7 -0.005813 -0.999871
我试过了:
df.returns[if df.pred < 0 : df.returns = 0]
但我得到语法错误
编辑:
我在自己的returns[pred < 0] = 0
答案 0 :(得分:1)
您可以使用loc
:
df.loc[df.prediction < 0, 'return'] = 0
print df
returns prediction return
0 -1.005705 0.999999 NaN
1 0.005952 1.000000 NaN
2 0.000000 -0.999891 0
3 0.020000 -1.000000 0
4 0.000000 1.000000 NaN
5 0.005000 1.000000 NaN
6 0.000000 -0.999984 0
7 -0.005813 -0.999871 0
或者如果您需要覆盖列returns
:
df.loc[df.prediction < 0, 'returns'] = 0
print df
returns prediction
0 -1.005705 0.999999
1 0.005952 1.000000
2 0.000000 -0.999891
3 0.000000 -1.000000
4 0.000000 1.000000
5 0.005000 1.000000
6 0.000000 -0.999984
7 0.000000 -0.999871