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
.