Insert a given column at a specific position in a Pandas DataFrame
Last Updated :
30 Nov, 2023
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.
Python3
import pandas as pd
values = { 'col2' : [ 6 , 7 , 8 ,
9 , 10 ],
'col3' : [ 11 , 12 , 13 ,
14 , 15 ]}
df = pd.DataFrame(values)
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.
- Add Column to Dataframe
- Insert a column at the beginning
- Insert a column at specific position
- Insert a column at the end
- Using
assign()
method
- Using insert() method
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.
Python3
df[ 'col1' ] = 0
df = df[ list (( 'col1' , 'col2' , 'col3' ))]
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.
Python3
new_col = [ 1 , 2 , 3 , 4 , 5 ]
df.insert(loc = 0 ,
column = 'col1' ,
value = new_col)
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.
Python3
df.loc[:, 'New_Column' ] = [ 20 , 30 , 40 , 50 , 60 ]
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.
Python3
new_df = pd.DataFrame({ 'New_Column' : [ 20 , 30 , 40 , 50 , 60 ]})
df = pd.concat([df.iloc[:, : 1 ], new_df, df.iloc[:, 1 :]], axis = 1 )
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.
Python3
df = df.assign(New_Column = [ 20 , 30 , 40 , 50 , 60 ])
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.
Python3
df.insert( 1 , 'New_Column' , pd.Series([ 20 , 30 , 40 , 50 , 60 ]))
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
Share your thoughts in the comments
Please Login to comment...