How to Change the Order of Columns in Pandas DataFrame?

To change the order of columns in a Pandas DataFrame, you can use the df.reindex() method, passing a list of column names in the order you want them to appear. You can also use df.columns to reassign the columns in the order you desire. You can also use the df.loc[] and df.iloc[] functions to adjust the order of the DataFrame. Additionally, you can use the df.sort_index() method to sort the DataFrame in the order of the index.


You can use the following syntax to quickly change the order of columns in a pandas DataFrame:

df[['column2', 'column3', 'column1']]

The following examples show how to use this syntax with the following pandas DataFrame:

import pandas as pd

#create new DataFrame
df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29],
                   'assists': [5, 7, 7, 9, 12, 9, 9, 4],
                   'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#display DataFrame
df

	points	assists	rebounds
0	25	5	11
1	12	7	8
2	15	7	10
3	14	9	6
4	19	12	6
5	23	9	5
6	25	9	9
7	29	4	12

Example 1: Change the Order of Columns by Name

The following code shows how to change the order of the columns in the DataFrame based on name:

#change order of columns by name
df[['rebounds', 'assists', 'points']]

	rebounds assists points
0	11	 5	 25
1	8	 7	 12
2	10	 7	 15
3	6	 9	 14
4	6	 12	 19
5	5	 9	 23
6	9	 9	 25
7	12	 4	 29

Example 2: Change the Order by Adding New First Column

The following code shows how to change the order of the columns in the DataFrame by inserting a new column in the first position:

#define new column to add
steals = [2, 3, 3, 4, 3, 2, 1, 2]

#insert new column in first position
df.insert(0, 'steals', steals)

#display dataFrame
df
        steals	points	assists	rebounds
0	2	25	5	11
1	3	12	7	8
2	3	15	7	10
3	4	14	9	6
4	3	19	12	6
5	2	23	9	5
6	1	25	9	9
7	2	29	4	12

Example 3: Change the Order by Adding New Last Column

The following code shows how to change the order of the columns in the DataFrame by inserting a new column in the last position of the DataFrame:

#define new column to add
steals = [2, 3, 3, 4, 3, 2, 1, 2]

#insert new column in last position
df.insert(len(df.columns), 'steals', steals)

#display dataFrame
df

	points	assists	rebounds steals
0	25	5	11	 2
1	12	7	8	 3
2	15	7	10	 3
3	14	9	6	 4
4	19	12	6	 3
5	23	9	5	 2
6	25	9	9	 1
7	29	4	12	 2

How to Combine Two Columns in Pandas

x