Often you may want to use PowerShell to reorder columns in a CSV file.
Fortunately this is easy to do by using the following syntax:
Import-Csv input_file.csv |
Select-Object col3, col4, col1, col2 |
Export-Csv output_file.csv
Here is what this particular example does:
- First, use Import-Csv to import the columns from input_file.csv.
- Then, use Select-Object to select columns in a specific order.
- Then, use Export-Csv to export this data in this specific column order to a file named output_file.csv.
The following example shows how to use this syntax in practice.
Example: How to Use PowerShell to Reorder Columns in CSV File
Suppose we have a CSV file named nba_data.csv in our current directory that contains information about various basketball players.
We can use the Import-Csv cmdlet to view the contents of this file:

Notice that the columns in the file are currently in the following order:
- team, points, assists, rebounds
Suppose instead that we would like to create a new CSV file with the following order:
- assists, team, points, rebounds
We can use the following syntax to do so:
Import-Csv nba_data.csv |
Select-Object assists, team, points, rebounds |
Export-Csv nba_data_new.csv
The following screenshot shows how to use this syntax in practice:

Notice that when we use the Import-Csv cmdlet to view the contents of the new file named nba_data_new.csv we can see that the columns are in the exact order that we specified:
- assists, team, points, rebounds
Note: You can find the complete documentation for the Export-Csv cmdlet in PowerShell here.
Related Tutorials
The following tutorials explain how to perform other common tasks in PowerShell:
PowerShell: How to Get Values from Header of CSV
PowerShell: How to Loop Through Each Line of CSV File
PowerShell: How to Count Number of Rows in CSV File
