MultIndex to fill in dataframe
<p>I have a df like  this:</p>

<pre><code>       Allotments  SH_Class  SH_Percent
       A. Annex       BNW   16.187500
       A. Annex      MTGP   1.0000000
       A. Annex    Meadow   39.687500
       A. Annex       PHP   29.687500
       A. Annex        SP   16.250000
       A. Annex     WMTGP   10.833333
       A. Annex  Woodland    5.000000
       Arnstson    Meadow   28.750000
       Arnstson       PHP   61.590909
       Arnstson        SP   18.125000
       Arnstson     WMTGP    2.500000
       Arnstson  Woodland   17.083333
</code></pre>

<p>and I want <code>SH_Class</code> to be identical for each unique <code>Allotments</code>.  So even though <code>Arnstson</code> doesn't have a <code>MTGP</code> or <code>BNW</code> in it I want it added with a corresponding <code>SH_Percent</code> of zero.  My desired output is:</p>

<pre><code>       Allotments  SH_Class  SH_Percent
       A. Annex       BNW   16.187500
       A. Annex      MTGP   1.0000000
       A. Annex    Meadow   39.687500
       A. Annex       PHP   29.687500
       A. Annex        SP   16.250000
       A. Annex     WMTGP   10.833333
       A. Annex  Woodland    5.000000
       Arnstson       BNW   0.0000000
       Arnstson      MTGP   0.0000000
       Arnstson    Meadow   28.750000
       Arnstson       PHP   61.590909
       Arnstson        SP   18.125000
       Arnstson     WMTGP    2.500000
       Arnstson  Woodland   17.083333
</code></pre>

<p>I have tried this code:</p>

<pre><code>target_ix = pd.MultiIndex.from_product([df.Allotments.unique(),
    levels='BNW', 'MTGP', 'Meadow', 'PHP', 'SP', 'WMTGP', 'Woodland'])
new_df = df.loc[target_ix]
</code></pre>

<p>but its not quite right. </p>