PANDAS如何使用IF多条件判定后进行累加计算(语言-python)

我在EXCEL上进行了这样一组计算:

=IF(AND(B2=1,B3=-1),-1,IF(AND(B2=-1,B3=1),1,IF(B2=B3,C2+B3,0)))

实现结果如下:

img


意思就是signal2会根据signal中1和-1出现的次数进行累加,当1或者-1变化时,累加也会重新计算

img

img


当我使用PYTHON进行计算时,代码如下:

df['signal2']=df['signal'].shift() 


df1=df.loc[0:50,('signal','signal2')]
 
def get_signal3(x):
    if x['signal']==1:
         if x['signal2']==-1:
            return 1
     elif x['signal']==-1:
         if x['signal2']==1:
             return -1
     elif x['signal']==x['signal2']:
         return x.shift()+x 
df1['signal3']=df1.apply(get_signal3,axis=1)

结果如下:

img


为什么这个无法运行,这个是什么问题?

x['signal']==1 但 x['signal2'] 为空时, get_signal3 函数没有对应的返回值。

img