Pandas: update a column with an if statement

前端 未结 1 2016
长发绾君心
长发绾君心 2020-12-11 23:28

My current dataframe looks like this:

    midprice    ema12   ema26   difference
0   0.002990    0.002990    0.002990    0.000000e+00
1   0.002990    0.0029         


        
相关标签:
1条回答
  • 2020-12-11 23:41

    I think you need:

    m1= df['difference'] < df['difference'].shift(-1)
    m2= df['difference'] < df['difference'].shift(-2)
    m3= df['difference'] < df['difference'].shift(-3)
    
    df['action'] = np.select(condlist=[m1 | m2 | m3, df.ema12 < df.ema26 ], 
                             choicelist=['buy', 'sell'], 
                             default='do nothing')
    print (df)
       midprice     ema12     ema26    difference      action
    0  0.002990  0.002990  0.002990  0.000000e+00         buy
    1  0.002990  0.002990  0.002990  4.227920e-08         buy
    2  0.003018  0.002994  0.002992  2.295777e-06         buy
    3  0.003025  0.002999  0.002994  4.579221e-06         buy
    4  0.003067  0.003009  0.003000  9.708765e-06         buy
    5  0.003112  0.003025  0.003008  1.718520e-05  do nothing
    
    0 讨论(0)
提交回复
热议问题