title: Set order of columns in pandas dataframe
body: <p>Is there a way to reorder columns in pandas dataframe based on my personal preference (i.e. not alphabetically or numerically sorted, but more like following certain conventions)?</p>
  
  <p>Simple example:</p>
  
  <pre><code>frame = pd.DataFrame({
          'one thing':[1,2,3,4],
          'second thing':[0.1,0.2,1,2],
          'other thing':['a','e','i','o']})
  </code></pre>
  
  <p>produces this:</p>
  
  <pre><code>   one thing other thing  second thing
  0          1           a           0.1
  1          2           e           0.2
  2          3           i           1.0
  3          4           o           2.0
  </code></pre>
  
  <p>But instead, I would like this:</p>
  
  <pre><code>   one thing second thing  other thing
  0          1           0.1           a
  1          2           0.2           e
  2          3           1.0           i
  3          4           2.0           o
  </code></pre>
  
  <p>(Please, provide a generic solution rather than specific to this case. Many thanks.)</p>