Keeping columns in the specified order when using UseCols in Pandas Read_CSV
<p>I have a csv file with 50 columns of data. I am using Pandas read_csv function to pull in a subset of these columns, using  the usecols parameter to choose the ones I want:</p>

<pre><code>cols_to_use = [0,1,5,16,8]
df_ret = pd.read_csv(filepath, index_col=False, usecols=cols_to_use)
</code></pre>

<p>The trouble is df_ret contains the correct columns, but not in the order I specified. They are in ascending order, so [0,1,5,8,16]. (By the way the column numbers can change from run to run, this is just an example.) This is a problem because the rest of the code has arrays which are in the "correct" order and I would rather not have to reorder all of them. </p>

<p>Is there any clever pandas way of pulling in the columns in the order specified? Any help would be much appreciated!</p>

<p>you can reuse the same <code>cols_to_use</code> list for selecting columns in desired order:</p>

<pre><code>df_ret = pd.read_csv(filepath, index_col=False, usecols=cols_to_use)[cols_to_use]
</code></pre>

python pandas dataframe