title: Reorder levels of MultiIndex in a pandas DataFrame
body: <p>I have a DataFrame that looks something like this:</p>
  
  <pre><code>&gt;&gt;&gt; df = pd.DataFrame(index=pd.MultiIndex.from_tuples([(num,letter,color) 
                      for num in range(1,3) 
                      for letter in ['a','b','c'] for color in ['Red','Green']], 
                      names=['Number','Letter','Color']))
  &gt;&gt;&gt; df['Value'] = np.random.randint(1,100,len(df))
  &gt;&gt;&gt; df
                       Value
  Number Letter Color       
  1      a      Red       97
                Green     61
         b      Red       97
                Green     98
         c      Red       91
                Green     47
  2      a      Red       17
                Green     63
         b      Red       26
                Green     73
         c      Red       34
                Green     68
  </code></pre>
  
  <p>But I actually want my index to be ordered 'Letter, Color, Number'. </p>
  
  <p>I currently do this as follows:</p>
  
  <pre><code>&gt;&gt;&gt; df.reset_index().set_index(['Letter','Color','Number'])
                       Value
  Letter Color Number       
  a      Red   1          97
         Green 1          61
  b      Red   1          97
         Green 1          98
  c      Red   1          91
         Green 1          47
  a      Red   2          17
         Green 2          63
  b      Red   2          26
         Green 2          73
  c      Red   2          34
         Green 2          68
  </code></pre>
  
  <p>Is this the best approach?</p>