title: Pandas: Multilevel column names
body: <p><code>pandas</code> has support for multi-level column names:</p>
  
  <pre><code>&gt;&gt;&gt;  x = pd.DataFrame({'instance':['first','first','first'],'foo':['a','b','c'],'bar':rand(3)})
  &gt;&gt;&gt; x = x.set_index(['instance','foo']).transpose()
  &gt;&gt;&gt; x.columns
  MultiIndex
  [(u'first', u'a'), (u'first', u'b'), (u'first', u'c')]
  &gt;&gt;&gt; x
  instance     first                    
  foo              a         b         c
  bar       0.102885  0.937838  0.907467
  </code></pre>
  
  <p>This feature is very useful since it allows multiple versions of the same dataframe to be appended 'horizontally' with the 1st level of the column names (in my example <code>instance</code>) distinguishing the instances.</p>
  
  <p>Imagine I already have a dataframe like this:</p>
  
  <pre><code>                 a         b         c
  bar       0.102885  0.937838  0.907467
  </code></pre>
  
  <p>Is there a nice way to add another level to the column names, similar to this for row index:</p>
  
  <pre><code>x['instance'] = 'first'
  x.set_level('instance',append=True)
  </code></pre>