擅长:python、mysql、java
<p>首先使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_numeric.html" rel="nofollow noreferrer">^{<cd1>}</a>将列<code>span</code>的数据类型转换为数字类型,然后在列<code>span</code>上使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.groupby.html" rel="nofollow noreferrer">^{<cd3>}</a>并使用<code>sum</code>进行聚合:</p>
<pre><code>df['span'] = pd.to_numeric(df['span'], errors='coerce')
s = df['span'].groupby(df['zt'].eq(1).cumsum()).sum()
</code></pre>
<p>结果:</p>
<pre><code>print(s)
zt
1 498.460242
2 412.008844
3 552.920138
Name: span, dtype: float64
</code></pre>
<hr/>
<p>编辑(对于<code>multiple</code>列):</p>
<pre><code>cols = ['x', 'y', 'span']
df[cols] = df[cols].apply(pd.to_numeric, errors='coerce')
s = df[cols].groupby(df['zt'].eq(1).cumsum()).sum()
</code></pre>
<p>结果:</p>
<pre><code> x y span
zt
1 1.972482e+07 1.427277e+07 57.638760
2 1.972603e+07 1.427392e+07 412.008844
3 1.972687e+07 1.427485e+07 552.920138
</code></pre>