Skip to main content

Pandas assign()

In this tutorial, you will learn about the assign() method in Pandas with the help of examples.

The assign() method in Pandas is used to create a new column in a DataFrame or modify an existing one.

Example

import pandas as pd

# sample DataFrame
data = {'A': [1, 2, 3],
        'B': [4, 5, 6]}

df = pd.DataFrame(data)

# create new column C
new_df = df.assign(C=[7, 8, 9])

print(new_df)

'''
Output

   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9
'''

assign() Syntax

The syntax of the assign() method in Pandas is:

df.assign(**kwargs)

assign() Argument

The assign() method takes the following argument:

  • **kwargs: the column names and their corresponding values or functions.

assign() Return Value

The assign() method returns a new DataFrame with the assigned columns. The original DataFrame remains unchanged.


Example 1: Basic Column Assignment

import pandas as pd

data = {'A': [1, 2, 3]}

df = pd.DataFrame(data)

# assign a new column B
new_df = df.assign(B=[4, 5, 6])

print(new_df)

Output

   A  B
0  1  4
1  2  5
2  3  6

In this example, we assigned column B to df and displayed the resulting DataFrame.


Example 2: Assignment Using Functions

We can assign columns based on the values in the existing DataFrame using functions.

import pandas as pd

data = {'A': [1, 2, 3]}

df = pd.DataFrame(data)

# assign a new column B based on column A
new_df = df.assign(B=lambda x: x['A'] * 2)

print(new_df)

Output

   A  B
0  1  2
1  2  4
2  3  6

In this example, we assigned values to the new column B that are double the values in column A using lambda function.


Example 3: Multiple Column Assignments

We can assign multiple columns at once using the assign() method.

import pandas as pd

data = {'A': [1, 2, 3]}
df = pd.DataFrame(data)

# assign multiple new columns
new_df = df.assign(B=[4, 5, 6], C=[7, 8, 9])

print(new_df)

Output

   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

Example 4: Chaining Assignments

We can chain the assign() method to assign multiple columns.

import pandas as pd

data = {'A': [1, 2, 3]}

df = pd.DataFrame(data)

# chain assignments to add columns
new_df = df.assign(B=[4, 5, 6]).assign(C=lambda x: x['A'] + x['B'])

print(new_df)

Output

   A  B  C
0  1  4  5
1  2  5  7
2  3  6  9

In this example, we first assigned column B. In the next assign() call, we used the newly created B and existing A to assign column C.