擅长:python、mysql、java
<p>IIUC,您可以使用<code>df.index.str[:9]</code>获取前9个字符,并且<code>groupby().shift()</code>:</p>
<pre><code>df['Value'] -= df.groupby([df.index.str[:9], df['Date']]).Value.shift().fillna(0)
</code></pre>
<p>输出:</p>
<pre><code> Value Date
ISIN
TRT010213A15 10.0 2019-11-15
TRT010213T23 90.0 2019-11-15
TRT010213T23 70.0 2019-12-20
TRT080328T15 150.0 2018-10-12
TRT080420T12 175.0 2018-05-11
TRT150120T16 150.0 2019-08-29
TRT150120A05 15.0 2019-11-18
TRT150120T16 300.0 2019-10-15
TRT150120T16 260.0 2019-11-18
</code></pre>
<p><strong>注意</strong>:出于某种原因,<code>groupby().diff()</code>对我不起作用</p>