Open In App

Add multiple columns to dataframe in Pandas

Improve
Improve
Like Article
Like
Save
Share
Report

In Pandas, we have the freedom to add columns in the data frame whenever needed. There are multiple ways to add columns to pandas dataframe. 

Add multiple columns to a DataFrame using Lists

Python3




# importing pandas library
import pandas as pd
 
# creating and initializing a nested list
students = [['jackma', 34, 'Sydeny', 'Australia'],
            ['Ritika', 30, 'Delhi', 'India'],
            ['Vansh', 31, 'Delhi', 'India'],
            ['Nany', 32, 'Tokyo', 'Japan'],
            ['May', 16, 'New York', 'US'],
            ['Michael', 17, 'las vegas', 'US']]
 
# Create a DataFrame object
df = pd.DataFrame(students,
                  columns=['Name', 'Age', 'City', 'Country'],
                  index=['a', 'b', 'c', 'd', 'e', 'f'])
 
# Creating 2 lists 'marks' and 'gender'
marks = [85.4,94.9,55.2,100.0,40.5,33.5]
gender = ['M','F','M','F','F','M']
 
# adding lists as new column to dataframe df
df['Uni_Marks'] = marks
df['Gender'] = gender
 
# Displaying the Data frame
df


Output :

Add DataFrame columns using Lists

Add DataFrame columns using Lists

Add multiple columns to a data frame using Dataframe.assign() method

Using DataFrame.assign() method, we can set column names as parameters and pass values as list to replace/create the columns.

Python3




# importing pandas library
import pandas as pd
 
# creating and initializing a nested list
students = [['jackma', 34, 'Sydeny', 'Australia'],
            ['Ritika', 30, 'Delhi', 'India'],
            ['Vansh', 31, 'Delhi', 'India'],
            ['Nany', 32, 'Tokyo', 'Japan'],
            ['May', 16, 'New York', 'US'],
            ['Michael', 17, 'las vegas', 'US']]
 
# Create a DataFrame object
df = pd.DataFrame(students,
                  columns=['Name', 'Age', 'City', 'Country'],
                  index=['a', 'b', 'c', 'd', 'e', 'f'])
 
# creating columns 'Admissionnum' and 'Percentage'
# using dataframe.assign() function
df = df.assign(Admissionnum=[250, 800, 1200, 300, 400, 700],
               Percentage=['85%', '90%', '75%', '35%', '60%', '80%'])
 
# Displaying the Data frame
df


Output :

Added multiple columns using DataFrame assign() Method

Added multiple columns using DataFrame assign() Method

Add multiple columns to a data frame using Dataframe.insert() method

Using DataFrame.insert() method, we can add new columns at specific position of the column name sequence. Although insert takes single column name, value as input, but we can use it repeatedly to add multiple columns to the DataFrame. 

Python3




# importing pandas library
import pandas as pd
 
# creating and initializing a nested list
students = [['jackma', 34, 'Sydeny', 'Australia'],
            ['Ritika', 30, 'Delhi', 'India'],
            ['Vansh', 31, 'Delhi', 'India'],
            ['Nany', 32, 'Tokyo', 'Japan'],
            ['May', 16, 'New York', 'US'],
            ['Michael', 17, 'las vegas', 'US']]
 
# Create a DataFrame object
df = pd.DataFrame(students,
                  columns=['Name', 'Age', 'City', 'Country'],
                  index=['a', 'b', 'c', 'd', 'e', 'f'])
 
# creating columns 'Age' and 'ID' at
# 2nd and 3rd position using
# dataframe.insert() function
df.insert(2, "Marks", [90, 70, 45, 33, 88, 77], True)
df.insert(3, "ID", [101, 201, 401, 303, 202, 111], True)
 
 
# Displaying the Data frame
df


Output :

Added multiple columns using DataFrame insert() Method

Added multiple columns using DataFrame insert() Method

Add multiple columns to a data frame using Dictionary and zip()

Using Dict and zip() we can create a mapping of key values, which can be assigned to a new column name.

Python3




# importing pandas library
import pandas as pd
 
# creating and initializing a nested list
students = [['jackma', 34, 'Sydeny', 'Australia'],
            ['Ritika', 30, 'Delhi', 'India'],
            ['Vansh', 31, 'Delhi', 'India'],
            ['Nany', 32, 'Tokyo', 'Japan'],
            ['May', 16, 'New York', 'US'],
            ['Michael', 17, 'las vegas', 'US']]
 
# Create a DataFrame object
df = pd.DataFrame(students,
                  columns=['Name', 'Age', 'City', 'Country'],
                  index=['a', 'b', 'c', 'd', 'e', 'f'])
 
# creating 2 lists 'ids' and 'marks'
ids = [11, 12, 13, 14, 15, 16]
marks=[85,41,77,57,20,95,96]
 
# Creating columns 'ID' and 'Uni_marks' 
# using Dictionary and zip()
df['ID'] = dict(zip(ids, df['Name']))
df['Uni_Marks'] = dict(zip(marks, df['Name']))
   
# Displaying the Data frame
df


Output :

Added multiple columns using Dictionary and zip()

Added multiple columns using Dictionary and zip()



Last Updated : 03 Oct, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads