title: how to not let columns sorted by alphabetical order after concatenate dataframes with different number of columns in python
body: <p>I across this problem when using python for a double-level header. and found the same problem from other forum as states below:</p>
  
  <p>When concatenating DataFrames and the header is douple-level, the column names get alphanumerically sorted if there are any differences between them. If they're identical across DataFrames, they don't get sorted.</p>
  
  <p>This sort is undocumented and unwanted. Certainly the default behavior should be no-sort. For example:</p>
  
  <p>I have two dataframe</p>
  
  <pre><code># df1:              C   A   B         # df2:         C   A   B   D
                      1   2   3                        1   2   3   4
                  0   4   5   6                    0   5   6   7   8
                  1   7   8   9                    1   9  10  11  12
  </code></pre>
  
  <p>if I print "Cols sorted", concat([df1,df2], sort = False)</p>
  
  <pre><code># Cols sorted           A   B   C    D
                          2   3   1    4
                      0   5   6   4  NaN
                      1   8   9   7  NaN
  </code></pre>
  
  <p>But I want to keep it as the original order like:</p>
  
  <pre><code># Cols wanted:          C   A   B    D
                          1   2   3    4
                      0   4   5   6  NaN
                      1   7   8   9  NaN
  </code></pre>
  
  <p>since df1 is placed in the first place when I concatenate them. When I use <code>df1.append(df2)</code>, I have the same problem. </p>
  
  <p>Also I am organizing a DataFrame with 60+ columns. So I can just create a new list of column names in right order and just simply do <code>df = df[list of column name in original order]</code></p>