IIU C:
Идея сдвига исходит из элементов сдвига в массиве numpy
from scipy.ndimage.interpolation import shift
x.eq(0) -> x==0
x.shift() -> shift(x, 1, cval=1)
x.ne(0) -> x!=0
И, таким образом:
((x.eq(0)&x.shift().ne(0)).sum()) -> np.sum(np.logical_and((x==0),shift(x, 1, cval=np.nan)!=0))
Наконец:
x.eq(0).sum()/((x.eq(0)&x.shift().ne(0)).sum()) -> np.count_nonzero(x == 0)/np.sum(np.logical_and((x==0),shift(x, 1, cval=1)!=0))
Но если бы я был там, где вы, я бы просто сделал:
x = pd.Series(x)