擅长:python、mysql、java
<p>您需要另一个<code>rolling(3)</code>,如下所示</p>
<pre><code>m1 = df.rolling(5).sum().eq(5)
m2 = df.eq(0).rolling(3).sum().eq(3)
df['check'] = df[m1 | m2].ffill()
Out[310]:
signal check
index
0 1 NaN
1 1 NaN
2 1 NaN
3 1 NaN
4 1 1.0
5 1 1.0
6 0 1.0
7 0 1.0
8 0 0.0
9 0 0.0
10 0 0.0
11 0 0.0
12 0 0.0
13 1 0.0
14 0 0.0
15 1 0.0
16 1 0.0
17 1 0.0
18 1 0.0
19 1 1.0
</code></pre>
<hr/>
<p>掩码<code>m2</code>也可以简化为这样</p>
<pre><code>m2 = df.rolling(3).sum().eq(0)
</code></pre>