pandas数据帧中行的条件运算

时间:2016-02-12 08:32:59

标签: python pandas

我希望有一个条件,说明预测中的价值是否为' < 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

上想出来了

1 个答案:

答案 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