<p>使用<a href="https://pandas.pydata.org/docs/reference/api/pandas.melt.html" rel="nofollow noreferrer"><strong>^{<cd1>}</strong></a>和<a href="https://pandas.pydata.org/docs/reference/api/pandas.pivot.html" rel="nofollow noreferrer"><strong>^{<cd2>}</strong></a>的另一个选项:</p>
<pre class="lang-py prettyprint-override"><code>(df.melt(['vendor_state', 'client_state', 'date'], var_name='widget_type')
.pivot(index=['vendor_state', 'client_state', 'widget_type'], columns='date')
.droplevel(0, axis=1)
.rename_axis(None, axis=1)
.reset_index()
.replace('total_|_purchases', '', regex=True)
.fillna(0))
# vendor_state client_state widget_type 2021-02-01 2021-02-08 2021-03-07
# 0 CA OR widget_a 8.0 0.0 0.0
# 1 CA OR widget_b 7.0 0.0 0.0
# 2 CA WA widget_a 10.0 0.0 0.0
# 3 CA WA widget_b 5.0 0.0 0.0
# 4 NY NJ widget_a 0.0 7.0 15.0
# 5 NY NJ widget_b 0.0 25.0 9.0
# 6 NY NY widget_a 0.0 24.0 0.0
# 7 NY NY widget_b 0.0 3.0 0.0
</code></pre>