Skip to content
Related Articles

Related Articles

Add multiple columns to dataframe in Pandas

View Discussion
Improve Article
Save Article
  • Last Updated : 03 Oct, 2022
View Discussion
Improve Article
Save Article

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()


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!