Open In App

Insert a given column at a specific position in a Pandas DataFrame

In this comprehensive guide, we will leverage the powerful DataFrame.insert() the method provided by the Pandas library to effectively Insert a given column at a specific position in a Pandas Dataframe.

Create a Sample DataFrame

In this example below code uses Pandas to create a DataFrame named ‘df’ from a dictionary with columns ‘col2’ and ‘col3’ and their respective values. The data frame is then displayed.






# Importing pandas library
import pandas as pd
 
# dictionary
values = {'col2': [6, 7, 8,
                   9, 10],
          'col3': [11, 12, 13,
                   14, 15]}
 
# Creating dataframe
df = pd.DataFrame(values)
 
# show the dataframe
df

Output:

   col2  col3
0     6    11
1     7    12
2     8    13
3     9    14
4    10    15

Ways to Add a column in Pandas DataFrame

There are various ways to Insert a given column at a specific position in a Pandas Dataframe. In this article, we will explain some commonly used methods.



Pandas Add Column to Dataframe

Here we are adding a new column in the dataframe and then define a list in the same order in which we want to get the columns.




# adding a new column
 
df['col1']=0
 
# show the dataframe
df = df[list(('col1','col2','col3'))]
 
# show the dataframe
df

Output:

   col1  col2  col3
0     0     6    11
1     0     7    12
2     0     8    13
3     0     9    14
4     0    10    15

Insert a column at the beginning of the dataframe using insert() Method

In this example, we are using an insert() method to Insert a column at the beginning of the Dataframe.




# New column to be added
new_col = [1, 2, 3, 4, 5]
 
# Inserting the column at the
# beginning in the DataFrame
df.insert(loc = 0,
          column = 'col1',
          value = new_col)
# show the dataframe
df

Output: 

   col1  col2  col3
0     1     6    11
1     2     7    12
2     3     8    13
3     4     9    14
4     5    10    15

Insert a column at the end in a Dataframe using Loc() Method

In this example, we are using the Pandas loc method, a new column named ‘New_Column’ is added with specified values, and the modified DataFrame is displayed.




# Using loc method
df.loc[:, 'New_Column'] = [20, 30, 40, 50, 60]
 
# Displaying the modified DataFrame
print(df)

Output:

   col2  col3  New_Column
0     6    11          20
1     7    12          30
2     8    13          40
3     9    14          50
4    10    15          60

Insert a column at the specific position of the dataframe

In this example, the below code inserts a new column (‘New_Column’) into an existing DataFrame (df) at a specified position and displays the resulting modified data frame.




# Creating a new DataFrame
new_df = pd.DataFrame({'New_Column': [20, 30, 40, 50, 60]})
df = pd.concat([df.iloc[:, :1], new_df, df.iloc[:, 1:]], axis=1)
 
# Displaying the modified DataFrame
print(df)

Output :

   col2  New_Column  col3
0     6          20    11
1     7          30    12
2     8          40    13
3     9          50    14
4    10          60    15

Insert a column in a Dataframe using assign() method

In this example below code employs the Pandas assign method to add a new column named ‘New_Column’ with specified values to the DataFrame ‘df’. The modified data frame is then displayed.




# Using assign method
df = df.assign(New_Column=[20, 30, 40, 50, 60])
 
# Displaying the modified DataFrame
print(df)

Output :

   col2  col3  New_Column
0     6    11          20
1     7    12          30
2     8    13          40
3     9    14          50
4    10    15          60

Insert a column in a Dataframe using insert() method

In this example below code utilizes the Pandas `insert` method to add a new column named ‘New_Column’ at position 1 in the DataFrame, using values from a Pandas Series. The modified data frame is then displayed.




# Using insert with a Series
df.insert(1, 'New_Column', pd.Series([20, 30, 40, 50, 60]))
 
# Displaying the modified DataFrame
print(df)

Output :

   col2  New_Column  col3
0     6          20    11
1     7          30    12
2     8          40    13
3     9          50    14
4    10          60    15

Article Tags :