title: Setting DataFrame column headers to a MultiIndex
body: <p>How do I convert an existing dataframe with single-level columns to have hierarchical <strike>index</strike> columns (MultiIndex)?</p>
  
  <p>Example dataframe:</p>
  
  <pre><code>In [1]:
  import pandas as pd
  from pandas import Series, DataFrame
  
  df = DataFrame(np.arange(6).reshape((2,3)),
                 index=['A','B'],
                 columns=['one','two','three'])
  df
  Out [1]:
     one  two  three
  A    0    1      2
  B    3    4      5
  </code></pre>
  
  <p>I'd have thought that reindex() would work, but I get NaN's:</p>
  
  <pre><code>In [2]:
  df.reindex(columns=[['odd','even','odd'],df.columns])
  Out [2]:
     odd  even    odd
     one   two  three
  A  NaN   NaN    NaN
  B  NaN   NaN    NaN
  </code></pre>
  
  <p>Same if I use DataFrame():</p>
  
  <pre><code>In [3]:
  DataFrame(df,columns=[['odd','even','odd'],df.columns])
  Out [3]:
     odd  even    odd
     one   two  three
  A  NaN   NaN    NaN
  B  NaN   NaN    NaN
  </code></pre>
  
  <p>This last approach actually does work if I specify df.values:</p>
  
  <pre><code>In [4]:
  DataFrame(df.values,index=df.index,columns=[['odd','even','odd'],df.columns])
  Out [4]:
     odd  even    odd
     one   two  three
  A    0     1      2
  B    3     4      5
  </code></pre>
  
  <p>What's the proper way to do this? Why does reindex() give NaN's?</p>