title: How to add a second level column header/index to dataframe by matching to dictionary values?
body: <p>I have an existing dataframe.</p>
  
  <pre><code>l1 | a    b    c  |  d    e    f
  --------------------------------
  0  | 1    1    1  |  1    1    1
  1  | 1    1    1  |  1    1    1
  2  | 1    1    1  |  1    1    1
  </code></pre>
  
  <p>And this dictionary.</p>
  
  <pre><code>{
    "a": "dog",
    "b": "dog",
    "c": "dog",
    "d": "fish",
    "e": "fish",
    "f": "fish",
  }
  </code></pre>
  
  <p>What is the simplest way to create a second column level matching the existing columns to their category from the dictionary?</p>
  
  <p><em>The real columns and dictionary are much bigger and less organized.</em> </p>
  
  <p>The result should look like this.</p>
  
  <pre><code>l2 |     dog      |     fish
  l1 | a    b    c  |  d    e    f
  --------------------------------
  0  | 1    1    1  |  1    1    1
  1  | 1    1    1  |  1    1    1
  2  | 1    1    1  |  1    1    1
  </code></pre>