2016-02-12 102 views
1

我想有一個說,一個條件,如果在「預測」 < 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

您可以使用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 
+0

感謝Jezrael,我居然能在你發佈這個之前先把它畫出來謝謝,雖然你的方式很有趣 –