title: Giving a column multiple indexes/headers
body: <p>I am working with pandas dataframes that are essentially time series like this:</p>
  
  <pre><code>             level
  Date              
  1976-01-01  409.67
  1976-02-01  409.58
  1976-03-01  409.66
  …
  </code></pre>
  
  <p>What I want to have, is multiple indexes/headers for the level column, like so:</p>
  
  <pre><code>           Station1                   #Name of the datasource
             43.1977317,-4.6473648,5    #Lat/Lon of the source
             Precip                     #Type of data
  Date              
  1976-01-01  409.67
  1976-02-01  409.58
  1976-03-01  409.66
  …
  </code></pre>
  
  <p>So essentially I am searching for something like <code>Mydata.columns.level1 = ['Station1']</code>, <code>Mydata.columns.level2 = [Lat,Lon]</code>, <code>Mydata.columns.level3 = ['Precip']</code>.</p>
  
  <p>Reason being that a single location can have multiple datasets, and that I want to be able to pick either all data from one location, or all data of a certain type from all locations, from a subsequent merged, big dataframe.</p>
  
  <p>I can set up an example dataframe from the pandas documentation, and test my selection, but with my real data, I need a different way to set the indexes as in the example.</p>
  
  <p>Example:</p>
  
  <p>Built a small dataframe</p>
  
  <pre><code>header = [np.array(['location','location','location','location2','location2','location2']), 
  np.array(['S1','S2','S3','S1','S2','S3'])] 
  df = pd.DataFrame(np.random.randn(5, 6), index=['a','b','c','d','e'], columns = header )   
  
  df
      location                      location2                    
           S1        S2        S3         S1        S2        S3
  a -1.469932 -1.544511 -1.373463  -0.317262  0.024832 -0.641000
  b  0.047170 -0.339423  1.351253   0.601172 -1.607339  0.035932
  c -0.257479  1.140829  0.188291  -0.242490  1.019315 -1.163429
  d  0.832949  0.098170 -0.818513  -0.070383  0.557419 -0.489839
  e -0.628549 -0.158419  0.366167  -2.319316 -0.474897 -0.319549
  </code></pre>
  
  <p>Pick datatype or location:</p>
  
  <pre><code>df.loc(axis=1)[:,'S1']
  
     location  location2
           S1         S1
  a -1.469932  -0.317262
  b  0.047170   0.601172
  c -0.257479  -0.242490
  d  0.832949  -0.070383
  e -0.628549  -2.319316
  
  df['location']
  
           S1        S2        S3
  a -1.469932 -1.544511 -1.373463
  b  0.047170 -0.339423  1.351253
  c -0.257479  1.140829  0.188291
  d  0.832949  0.098170 -0.818513
  e -0.628549 -0.158419  0.366167
  </code></pre>
  
  <p>Or am I just looking for the wrong terminology? Because 90% of all examples in the documentation, and the questions here only treat the vertical "stuff" (dates or abcde in my case) as index, and a quick <code>df.index.values</code> on my test data also just gets me the vertical <code>array(['a', 'b', 'c', 'd', 'e'], dtype=object)</code>.</p>