The replace()
method in Pandas is used to replace values in a DataFrame.
Example
import pandas as pd
# create a DataFrame
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
})
# replace the value 2 with 200
df_replaced = df.replace(2, 200)
print(df_replaced)
'''
Output
A B
0 1 5
1 200 6
2 3 7
3 4 8
'''
replace() Syntax
The syntax of the replace()
method in Pandas is:
df.replace(to_replace, value, inplace=False, regex=False)
replace() Arguments
The replace()
method takes following arguments:
to_replace
- specifies what we want to replacevalue
- specifies the replacement valueinplace
(optional) - modifies the DataFrame in place ifTrue
regex
(optional) - enables regular expression matching ifTrue
replace() Return Value
The replace()
method in Pandas returns a new DataFrame with the specified replacements applied.
Example 1: Replace Value(s) in a DataFrame
import pandas as pd
# create a sample DataFrame
data = {'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]}
df = pd.DataFrame(data)
# replace a single value 2 with 200
df_single_replace = df.replace(2, 200)
# replace multiple values 1 with 100 and 3 with 300
df_multiple_replace = df.replace({1: 100, 3: 300})
print("Original DataFrame:")
print(df)
print("\nDataFrame after single replace:")
print(df_single_replace)
print("\nDataFrame after multiple replace:")
print(df_multiple_replace)
Output
Original DataFrame:
A B
0 1 5
1 2 6
2 3 7
3 4 8
DataFrame after single replace:
A B
0 1 5
1 200 6
2 3 7
3 4 8
DataFrame after multiple replace:
A B
0 100 5
1 2 6
2 300 7
3 4 8
In the above example, we used replace(2, 200)
to replace a single value 2 with 200 in df_single_replace.
We also used replace({1: 100, 3: 300})
to replace multiple values 1 with 100 and 3 with 300 in df_multiple_replace.
Example 2: Replace Values in a Specific Column
import pandas as pd
# create a DataFrame
data = {'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]}
df = pd.DataFrame(data)
# replace values in column 'A'
df['A'].replace(2, 200, inplace=True)
print(df)
Output
A B
0 1 5
1 200 6
2 3 7
3 4 8
Here, we used df['A']
to access and modify values in column A
.
We replaced the value 2 with 200 in column A
using the replace()
method with inplace=True
.
When inplace=True
is used, it means that the df DataFrame is modified directly, meaning, it doesn't return a new DataFrame but instead alters df itself.
Example 3: Use Regular Expressions to Replace Values
import pandas as pd
# create a DataFrame
data = {'Text': ['apple_1', 'banana_2', 'cherry_3']}
df = pd.DataFrame(data)
# use regular expression to replace values in the 'Text' column
df['Text'] = df['Text'].replace(r'(\d+)', 'X', regex=True)
print(df)
Output
Text 0 apple_X 1 banana_X 2 cherry_X
In this example, we have the df DataFrame with the Text
column containing strings.
SInce we want to replace all digits in the Text
column with the letter X
, we use replace()
with regex=True
and the regular expression r'(\d+)'
to match one or more digits.
All the digits in the Text
column are replaced with the replacement value X
.
Note: To learn more about Regular Expressions, please visit Python RegEx.
Example 4: Use a Dictionary to Replace
import pandas as pd
# create a DataFrame
data = {'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]}
df = pd.DataFrame(data)
# define a dictionary for replacement
replacement_dict = {2: 200, 4: 400}
# replace values using the dictionary
df.replace(replacement_dict, inplace=True)
print(df)
Output
A B
0 1 5
1 200 6
2 3 7
3 400 8
In the above example, we defined a dictionary replacement_dict where keys represent values to be replaced and values represent their replacements.
Then we used replace()
to replace the values in the df DataFrame based on the replacement_dict.