擅长:python、mysql、java
<p>让我们使用<code>Series.isna</code>+<code>Series.cumsum</code>来创建一个grouper,以识别非<code>NaN</code>值的连续块,然后<code>groupby</code>此grouper上的序列和<code>transform</code>使用<code>last</code>最终屏蔽grouper中的<code>duplicated</code>值:</p>
<pre><code>g = s.isna().cumsum()
s1 = s.groupby(g).transform('last').mask(g.duplicated(keep='last'))
</code></pre>
<p>结果:</p>
<pre><code>print(s1)
0 NaN
1 NaN
2 NaN
3 2.0
4 NaN
5 NaN
6 NaN
7 3.0
8 NaN
dtype: float64
</code></pre>