How to add a column in an existing data frame using Pandas?
In this tutorial, we will show you different ways of adding columns in the Pandas data frame.
For the examples, we have the following data frame created:
Code:
import pandas as pd inflation_data = { "Year": [2015, 2016, 2016, 2017], "Inflation": ['1.75%', '2%', '3%', '3.5%'] } #Creating a Data frame df = pd.DataFrame(inflation_data) #Display Data Frame print(df)
Output:
Year Inflation 0 2015 3.25% 1 2016 2.15% 2 2016 3% 3 2017 1.5%
Using the insert method of the data frame
A duplicate column name can also be added if allow_duplicate is set to True.
See the example below where we will add a new column (“Difference”) in the above-created data frame.
Code:
import pandas as pd inflation_data = { "Year": [2015, 2016, 2016, 2017], "Inflation": ['1.75%', '2%', '3%', '3.5%'] } #Creating a Data frame df = pd.DataFrame(inflation_data) df.insert(1, "Difference", [0.75, 0.25,1,0.5]) #Display DF after adding a column print(df)
Output:
Year Difference Inflation
0 2015 0.75 1.75%
1 2016 0.25 2%
2 2016 1.00 3%
3 2017 0.50 3.5%
How did it work?
- We want to add a new column with the name “Difference” in the DF.
- In the insert method, we specified position 1 (0-based index) for the “Difference” column.
- By using insert, you may also provide data. We provided data in the list.
Second Way – want to add a column at the end of the existing Data Frame?
This is the easiest way of adding a new column along with data in the existing data frame. However, the drawback is that it can add a column at the end.
Have a look at the example below where we will add the “Difference” column in the above-created DF.
Code:
import pandas as pd inflation_data = { "Year": [2015, 2016, 2016, 2017], "Inflation": ['1.75%', '2%', '3%', '3.5%'] } #Creating a Data frame df = pd.DataFrame(inflation_data) #Adding a new column with values df["Difference"] = [0.75, 0.25,1,0.5] #Display DF after adding a column print(df)
Result:
You can see the newly added column is placed at the end of DF.
Third way – Using a dictionary/map for adding a column
You may also use a Python dictionary and map combination for adding a new column in the existing data frame.
Code:
import pandas as pd #Creating a dictionary tel_dir = {'Name': ['Mike','Haynes','Mina'], 'Phone No':[123445689,45678910, 635363636]} #Create data frame based on dict df_dir = pd.DataFrame.from_dict(tel_dir) email = {'Mike':'mike@abc.com','Haynes':'haynes@abc.com','Mina':'mina@abc.com'} #Adding a column to DF by passing dict to map df_dir['Email'] = df_dir['Name'].map(email) #Display data frame print(df_dir)
Output:
Name Phone No Email
0 Mike 123445689 mike@abc.com
1 Haynes 45678910 haynes@abc.com
2 Mina 635363636 mina@abc.com
How did it work?
- In that case, we passed the dictionary to the map
- It will perform a lookup and return the associated value for that key.
- Alternatively, we used a column from the existing DF and passed a new column’s value to it.
Conclusion:
Due to its flexibility (for allowing adding columns at any position), we may categorize Data Frame’s insert method as the better way for adding columns in the data frame.