我有一个pandas df列,其中包含1和0。有没有一种方法可以找到在列中1
连续出现n次的所有实例?
例如,如果n = 4,那么我将返回1至4行和15至19行,如果为5行,我将仅获得15至19行。
谢谢!
数据输入
l=[0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0]
s=pd.Series(l)
答案 0 :(得分:1)
IIUC使用cumsum
创建groupby
密钥
s1=s[s==0].groupby(s.ne(0).cumsum()).transform('size')
n=5
s[(s==0)&(s1==n)]
Out[753]:
5 0
6 0
7 0
8 0
9 0
dtype: int64
Dput
l=[0,1,1,1,1,0,0,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0]
s=pd.Series(l)