Skip to content
Related Articles
Get the best out of our app
GFG App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Change the order of a Pandas DataFrame columns in Python

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

In this article, we are going to see how to change the order of dataframe columns in Python.

Different ways to Change the order of a Pandas DataFrame columns in Python:

  • Using iloc method
  • Using loc method
  • Using a subset of columns by passing a list
  • Using Reverse methods

Method 1: Using iloc methods

Here we are using iloc methods, we will pass the different indexes in the iloc to change the order of dataframe columns.

Python3




# importing the modules
import pandas as pd
import numpy as np
 
# creating the DataFrame
my_data = {'Sr.no': [1, 2, 3, 4, 5],
           'Name': ['Ram', 'Sham', 'Sonu',
                    'Tinu', 'Monu'],
           'Maths Score': [45, 67, 89, 74, 56]}
df = pd.DataFrame(data = my_data)
 
# printing the original DataFrame
print("My Original DataFrame")
display(df)
 
# printing the new DataFrame
print("My new DataFrame")
 
df.iloc[:,[0,2,1]]


Output:

 

Method 2: Using loc method

Here we will pass the columns name with loc.

Python3




# importing the modules
import pandas as pd
import numpy as np
 
# creating the DataFrame
my_data = {'Sr.no': [1, 2, 3, 4, 5],
           'Name': ['Ram', 'Sham', 'Sonu',
                    'Tinu', 'Monu'],
           'Maths Score': [45, 67, 89, 74, 56]}
df = pd.DataFrame(data = my_data)
 
# printing the original DataFrame
print("My Original DataFrame")
display(df)
 
# printing the new DataFrame
print("My new DataFrame")
 
df.loc[:,['Maths Score','Name','Sr.no']]


Output:

 

Method 3: Using a subset of columns by passing a list

Example 1 :

Python3




# importing the modules
import pandas as pd
import numpy as np
 
# creating the DataFrame
my_data = {'Sr.no': [1, 2, 3, 4, 5],
           'Name': ['Ram', 'Sham', 'Sonu',
                    'Tinu', 'Monu'],
           'Maths Score': [45, 67, 89, 74, 56]}
df = pd.DataFrame(data = my_data)
 
# printing the original DataFrame
print("My Original DataFrame")
print(df)
 
# altering the DataFrame
df = df[['Sr.no', 'Maths Score', 'Name']]
 
# printing the altered DataFrame
print('After altering Name and Maths Score')
print(df)


Output: 

 

 

Example 2 :

Python3




# importing the modules
import pandas as pd
  
# creating the DataFrame
l1 =["Amar", "Barsha", "Carlos", "Tanmay", "Misbah"]
l2 =["Alpha", "Bravo", "Charlie", "Tango", "Mike"]
l3 =[23, 25, 22, 27, 29]
l4 =[69, 54, 73, 70, 74]
df = pd.DataFrame(list(zip(l1, l2, l3, l4)))
df.columns =['Name', 'Code', 'Age', 'Weight']
 
# printing the original DataFrame
print("My Original DataFrame")
print(df)
  
# altering the DataFrame
df = df[['Name', 'Code', 'Weight', 'Age']]
  
# printing the altered DataFrame
print('After altering Weight and Age')
print(df)


Output : 
 

 

 

Method 4: Using List Reverse methods

Here we will use list reverse() methods to change the order of the columns.

Python3




# importing the modules
import pandas as pd
import numpy as np
 
# creating the DataFrame
my_data = {'Sr.no': [1, 2, 3, 4, 5],
           'Name': ['Ram', 'Sham', 'Sonu',
                    'Tinu', 'Monu'],
           'Maths Score': [45, 67, 89, 74, 56]}
df = pd.DataFrame(data = my_data)
 
# printing the original DataFrame
print("My Original DataFrame")
display(df)
 
cols = list(df.columns)
cols.reverse()
 
# printing the new DataFrame
print("My new DataFrame")
 
df[cols]


Output:

 


My Personal Notes arrow_drop_up
Last Updated : 26 Aug, 2022
Like Article
Save Article
Similar Reads
Related Tutorials