title: Add an empty row to MultiIndex DataFrame
body: <p>As the title implies, I would like to add an empty row to my <code>MultiIndex</code> <code>DataFrame</code>. The first level index needs to have a defined index value and the second level index needs to be <code>np.nan</code>. The values in the columns need to be <code>np.nan</code>.</p>
  
  <p>Consider the following:</p>
  
  <pre><code>import pandas as pd
  import numpy as np
  
  iterables = [['foo'], ['r_1', 'r_2', 'r_3']]
  idx = pd.MultiIndex.from_product(iterables, names=['idx_1', 'idx_2'])
  data = [(1, 2, 3), (4, 5, 6), (7, 8, 9)]
  df = pd.DataFrame(data, idx, columns=['col_1', 'col_2', 'col_3'])
  df
  Out[93]:
               col_1  col_2  col_3
  idx_1 idx_2                     
  foo   r_1        1      2      3
        r_2        4      5      6
        r_3        7      8      9
  </code></pre>
  
  <p>I would normally append a <code>Series</code> if this were a not a <code>MultiIndex</code> like this:</p>
  
  <pre><code>s = pd.Series(
      [np.nan, np.nan, np.nan], 
      index=['col_1', 'col_2', 'col_3'], 
      name='bar'
  )
  df.append(s)
  Out[95]:
              col_1  col_2  col_3
  (foo, r_1)    1.0    2.0    3.0
  (foo, r_2)    4.0    5.0    6.0
  (foo, r_3)    7.0    8.0    9.0
  bar           NaN    NaN    NaN
  </code></pre>
  
  <p>In this case, my <code>MultiIndex</code> is converted to tuples. I can't <code>ignore_index=True</code> in the <code>append</code> method because that removes the <code>MultiIndex</code>. I feel like I'm close, yet so far.</p>
  
  <p>My output should look like this:</p>
  
  <pre><code># some magic
  Out[96]:
               col_1  col_2  col_3
  col_a col_b
  foo   r_1    1.0    2.0    3.0
        r_2    4.0    5.0    6.0
        r_3    7.0    8.0    9.0
  bar   NaN    NaN    NaN    NaN
  </code></pre>
  
  <p>(Also acceptable to have the second level index <code>None</code>).</p>
  
  <p>How do I do this?</p>
  
  <p>Using Python 3.6 and Pandas 0.20.3.</p>