<p>使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html" rel="nofollow noreferrer">^{<cd1>}</a>
要对数据帧进行排序,
然后我们可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.assign.html" rel="nofollow noreferrer">^{<cd2>}</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.DataFrameGroupBy.diff.html" rel="nofollow noreferrer">^{<cd3>}</a>来创建<code>Diff</code>列:</p>
<pre><code>new_df = (df.sort_values(['ID Vendedor','Report month'])
.assign(Diff = lambda x: x.groupby('ID Vendedor')['sum']
.diff().fillna(0))
)
print(new_df)
Report month ID Vendedor sum count Rental Charge Diff
0 2018-07-01 803621.0 780.81 42 4 0.0
2 2018-08-01 803621.0 1132.71 77 3 351.9
1 2018-07-01 900000.0 100.90 20 5 0.0
3 2018-08-01 900000.0 1000.10 10 2 899.2
</code></pre>
<hr/>
<p>我们也可以使用<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.core.groupby.DataFrameGroupBy.shift.html" rel="nofollow noreferrer">^{<cd5>}</a>和<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.sub.html" rel="nofollow noreferrer">^{<cd6>}</a></p>
<pre><code>(df.sort_values(['ID Vendedor','Report month'])
.assign(Diff = lambda x: x['sum'].sub(x.groupby('ID Vendedor')['sum']
.shift())
.fillna(0)))
</code></pre>