根据当前行和熊猫中满足条件的行更新值

时间:2020-06-17 02:28:24

标签: python pandas

我有这张表:(为了方便起见,第4-19行被隐藏了),如果要满足条件,我想通过比较当前行值和满足条件的上一行值来更新值

    close   id  SMA20       RSI14        MACD        signal
0   9200.0  100 9196.450    69.381191    1.921696    1
1   9300.0  100 9196.450    69.381191   -1.921696   -1
2   9215.0  101 9198.400    79.360997   -1.044195   -1
3   9214.0  102 9200.300    77.546365   -0.605997   -1
20  9150.0  120 9190.675    17.256473   -4.207557   -1
21  9149.5  121 9187.400    17.094844   -4.734598   

在此示例中,我的当前行为21,我想将9149.5与信号与我的前一行20(-1)相同的前一行进行比较,因此最早的行将是具有9300的第一行,我想将此与每一行进行比较。如果diff> 150,则信号应返回最早行的相反值,否则将保持不变。这是我尚未合并的函数,但下面是信号列的当前函数,并且将df应用于:

if price > sma20 and macd >1 and rsi14 > 40: #buy
    return 1
elif price < sma20 or macd <1 or rsi14 < 40: #sell
    return -1
else:
    return 0

我真的很困惑,不确定使用什么功能。有没有办法在函数中应用df以包括上面的行?或者,如果我们可以更方便地修改信号功能,将不胜感激。谢谢!

0 个答案:

没有答案