擅长:python、mysql、java
<p>让我们做<code>stack</code>和<code>unstack</code></p>
<pre><code>dfout=df.set_index(['year','category1','category2']).\
value.unstack(level=0).\
reindex(columns=range(2000,2003)).\
stack(dropna=False).to_frame('value').\
sort_index(level=2).reset_index()
category1 category2 year value
0 A x 2000 0.0
1 A y 2000 1.0
2 B x 2000 0.0
3 A x 2001 NaN
4 A y 2001 NaN
5 B x 2001 NaN
6 A x 2002 4.0
7 A y 2002 3.0
8 B x 2002 4.0
</code></pre>