擅长:python、mysql、java
<p><a href="https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reindex.html" rel="nofollow noreferrer">^{<cd1>}</a>使用价格df和<code>fill_value=0</code>的折扣:</p>
<pre class="lang-py prettyprint-override"><code>A.set_index('ItemId').Price - B.Discount.reindex(A.ItemId, fill_value=0)
# ItemId
# a1 9.8
# a1 14.8
# a2 7.5
# a3 7.0
# dtype: float64
</code></pre>
<p>当前答案的时间安排:</p>
<p><a href="https://i.stack.imgur.com/A3wqm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/A3wqm.png" alt="timings of map vs reindex vs merge"/></a></p>
<pre class="lang-py prettyprint-override"><code>map_ = lambda A, B: A.Price - A.ItemId.map(B.Discount).fillna(0)
reindex_ = lambda A, B: A.set_index('ItemId').Price - B.Discount.reindex(A.ItemId, fill_value=0)
merge_ = lambda A, B: A.merge(B, on='ItemId', how='left').eval('Price - Discount.fillna(0)')
</code></pre>