擅长:python、mysql、java
<p>按照你最初的想法<code>cumsum</code>和<code>diff</code>,你可以写下:</p>
<pre><code>>>> (values.cumsum() - ALLOWANCE).clip_lower(0).diff().fillna(0)
0 0
1 0
2 20
3 30
dtype: float64
</code></pre>
<p>这是<code>values</code>减去允许值的累计和。负值被裁剪为零(因为我们不在乎数字,直到我们透支了津贴)。从那里,你可以计算出差额。在</p>
<p>但是,如果第一个值可能大于允许值,则首选以下两行变化:</p>
^{pr2}$
<p>这将用“first value-allows”值填充第一个<code>NaN</code>值。因此,在<code>ALLOWANCE</code>被降低到75的情况下,它将<code>desired</code>作为<code>Series([10, 10, 25, 30])</code>返回。在</p>