我认为您需要:
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 action0 0.002990 0.002990 0.002990 0.000000e+00 buy1 0.002990 0.002990 0.002990 4.227920e-08 buy2 0.003018 0.002994 0.002992 2.295777e-06 buy3 0.003025 0.002999 0.002994 4.579221e-06 buy4 0.003067 0.003009 0.003000 9.708765e-06 buy5 0.003112 0.003025 0.003008 1.718520e-05 do nothing



