title: Pandas DataFrame construction from a list of OrderedDict: preserving columns order
body: <p>pd.__version__ = 0.18.0</p>
  
  <p>Suppose you have a <em>list</em> of  OrderedDict:</p>
  
  <pre><code>[OrderedDict([('SecurityCode', 'IDX.MSDENON'), ('DescriptionLong', 'MSCI Norway NR USD (EUR)'), ('DataSrc', 'BGN.COB'), ('Ticker', 'MSDENON Index'), ('LastRun', None)])]
  </code></pre>
  
  <p>if you construct a DataFrame from default constructor (or even with .from_dict() method)</p>
  
  <pre><code>df = pd.DataFrame(mylist) 
  </code></pre>
  
  <p>it does not preserve column order:</p>
  
  <pre><code>      DataSrc  DescriptionLong    LastRun SecurityCode         Ticker  
     0  BGN.COB  MSCI Norway NR USD (EUR)    None  IDX.MSDENON  MSDENON Index
  </code></pre>
  
  <p>whereas :</p>
  
  <pre><code>df = pd.DataFrame(data, columns=data[0].keys())
  
       SecurityCode           DescriptionLong  DataSrc         Ticker LastRun
    0  IDX.MSDENON  MSCI Norway NR USD (EUR)  BGN.COB  MSDENON Index    None
  </code></pre>
  
  <p>does perserve column order.  </p>
  
  <p>I read on StackOverflow that such bug was present in 0.11 but IMHO we shouldn't have to specify columns= option in default constructor. Am I missing something or it is a bug that calls for a report ?</p>
  
  <p>EDIT:
  A github issue on pydata/pandas repo has been created and accepted. It's a "bug" in default constructor, overriding OrderedDict column order in any cases. A correction has been planed for next major release (commit accepted for 0.18.2)</p>