How to use Pandas.DataFrame.assign(**kwargs) In Python Pandas

It Assigns new columns to a DataFrame and returns a new object with all existing columns to new ones. Existing columns that are re-assigned will be overwritten.

Syntax: Pandas.DataFrame.assign(**kwargs)

Parameters : **kwargsdict of {str: callable or Series}

Returns : DataFrame

Let’s understand with examples:

First, create a simple DataFrame.

Python3




# importing pandas as pd
import pandas as pd
  
# creating the dataframe
df = pd.DataFrame({"Name": ['Anurag', 'Manjeet', 'Shubham',
                            'Saurabh', 'Ujjawal'],
  
                   "Address": ['Patna', 'Delhi', 'Coimbatore',
                               'Greater noida', 'Patna'],
  
                   "ID": [20123, 20124, 20145, 20146, 20147],
  
                   "Sell": [140000, 300000, 600000, 200000, 600000]})
  
print("Original DataFrame :")
display(df)


Output:

Add a new column:

Python3




new_df = df.assign(profit=[40000, 20000, 30000, 60000, 200000])
new_df


Output:

Add a new column with Default Value:

Python3




new_df = df.assign(profit='NAN')
new_df


Output:

Add Column to Pandas DataFrame with a Default Value

The three ways to add a column to Pandas DataFrame with Default Value.

  • Using pandas.DataFrame.assign(**kwargs)
  • Using [] operator
  • Using pandas.DataFrame.insert()

Similar Reads

Using Pandas.DataFrame.assign(**kwargs)

It Assigns new columns to a DataFrame and returns a new object with all existing columns to new ones. Existing columns that are re-assigned will be overwritten....

Using [] operator to add a new column

...

Using pandas.DataFrame.insert()

...