擅长:python、mysql、java
<p>按相似列分组,计算平均值,然后分配UsedB</p>
<p><code>df.groupby(['date', 'name', 'rack', 'freeB']).agg({'TotalB': 'mean'}).reset_index().assign(UsedB=lambda x: x['TotalB'] - x['freeB'])</code></p>
<pre><code> date name rack freeB TotalB UsedB
0 11/20/2020 a yes 5 10.750000 5.750000
1 11/20/2020 b no 2 5.333333 3.333333
</code></pre>
<p>您还可以使用<code>as_index=False</code>选项:</p>
<pre><code>df.groupby(["date", "name", "rack"], as_index=False).mean().assign(
UsedB=lambda x: x.TotalB - x.freeB
)
</code></pre>