<p>考虑一下<code>pd.Series</code><code>s</code>和{<cd3>}<code>mux</code></p>
<pre><code>lol = [list('aabc'), list('xyyz'), [1, 2, 3, 3]]
mux = pd.MultiIndex.from_arrays(lol, names='l1 l2 l3'.split())
s = pd.Series(range(1001, 1005), mux)
s
l1 l2 l3
a x 1 1001
y 2 1002
b y 3 1003
c z 3 1004
dtype: int64
</code></pre>
<p>根据<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.unstack.html" rel="nofollow noreferrer">documentation for ^{<cd5>}</a></p>
<blockquote>
<p><strong>fill_value</strong> : replace NaN with this value if the unstack produces
missing values</p>
</blockquote>
<p>当我<code>unstack</code></p>
^{pr2}$
<p>我确实得到<code>NaN</code>s。<br/>
所以我试着<code>fill_value=0</code></p>
<pre><code>s.unstack(fill_value=0)
l3 1 2 3
l1 l2
a x 1001 0 0
y 0 1002 0
b y 0 0 1003
c z 0 0 1004
</code></pre>
<p>果然,<code>NaN</code>中填充了<code>0</code>。在</p>
<p>但是,如果我想一次<code>unstack</code>多出一个级别。在</p>
<pre><code>s.unstack(['l2', 'l3'], fill_value=0)
l2 x y z
l3 1 2 3 3
l1
a 1001.0 1002.0 NaN NaN
b NaN NaN 1003.0 NaN
c NaN NaN NaN 1004.0
</code></pre>
<p>我的<code>fill_value</code>被忽略。在</p>
<p>为什么?什么是变通办法?</em></strong></p>