- list like replace method
- dict like replace method
- regex expression
import pandas as pd
import numpy as np
s = pd.Series([0,1,2,3,4])
s.replace(0,5) # single value to replace
0 5
1 1
2 2
3 3
4 4
dtype: int64
df = pd.DataFrame({'A':[0,1,2,3,4],
"B":[5,6,7,8,9],
"C":['a','b','c','d','e']})
df.replace(0,5) # replace all 0 to 5
|
A |
B |
C |
0 |
5 |
5 |
a |
1 |
1 |
6 |
b |
2 |
2 |
7 |
c |
3 |
3 |
8 |
d |
4 |
4 |
9 |
e |
df # the default parameter in_place= False
# DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')
# to_place can be number,string list or dict and even regex expression
# limit Maximum size gap to forward or backward fill.
|
A |
B |
C |
0 |
0 |
5 |
a |
1 |
1 |
6 |
b |
2 |
2 |
7 |
c |
3 |
3 |
8 |
d |
4 |
4 |
9 |
e |
1. list like replace method
df.replace([1,2,3,4],[4,3,2,1]) # content to replace . to_replace=[1,2,3,4],value=[4,3,2,1]
|
A |
B |
C |
0 |
0 |
5 |
a |
1 |
4 |
6 |
b |
2 |
3 |
7 |
c |
3 |
2 |
8 |
d |
4 |
1 |
9 |
e |
df.replace([1,2,3,4],100) # to_replace=[1,2,3,4],value=4
|
A |
B |
C |
0 |
0 |
5 |
a |
1 |
100 |
6 |
b |
2 |
100 |
7 |
c |
3 |
100 |
8 |
d |
4 |
100 |
9 |
e |
df.replace([1,2],method='bfill') # . like fillna with mehtod bfill(backfill), and the default mehtod was pad
|
A |
B |
C |
0 |
0 |
5 |
a |
1 |
3 |
6 |
b |
2 |
3 |
7 |
c |
3 |
3 |
8 |
d |
4 |
4 |
9 |
e |
2. dict like replace method
df.replace({2:20,6:100}) # to_replace =2 value=20,to_replace=6,value =100
|
A |
B |
C |
0 |
0 |
5 |
a |
1 |
1 |
100 |
b |
2 |
20 |
7 |
c |
3 |
3 |
8 |
d |
4 |
4 |
9 |
e |
df.replace({'A':2,'B':7},1000) # . to_replace={'A':2,"B":7}, value=1000
|
A |
B |
C |
0 |
0 |
5 |
a |
1 |
1 |
6 |
b |
2 |
1000 |
1000 |
c |
3 |
3 |
8 |
d |
4 |
4 |
9 |
e |
df.replace({'A':{1:1000,4:20}}) # in colomn A to_replace=1,value=1000, to_replace=4, value=20
|
A |
B |
C |
0 |
0 |
5 |
a |
1 |
1000 |
6 |
b |
2 |
2 |
7 |
c |
3 |
3 |
8 |
d |
4 |
20 |
9 |
e |
3. regex expression
df = pd.DataFrame({'A':['bat','foot','bait'],
'B':['abc','bar','foot']})
df.replace(to_replace=r'^ba.$',value='vvvv',regex=True) # to define to_replace and value in the function
|
A |
B |
0 |
vvvv |
abc |
1 |
foot |
vvvv |
2 |
bait |
foot |
df.replace({'A': r'^ba.$'}, {'A': 'new'}, regex=True) # in column A to_replce=r'^ba.$' value='new'
|
A |
B |
0 |
new |
abc |
1 |
foot |
bar |
2 |
bait |
foot |
df.replace({'A':{r"^ba.$":"new"}},regex=True) # same as above
|
A |
B |
0 |
new |
abc |
1 |
foot |
bar |
2 |
bait |
foot |
df.replace(regex=r'^ba.$',value='vvv') # in the whole dataframe
|
A |
B |
0 |
vvv |
abc |
1 |
foot |
vvv |
2 |
bait |
foot |
df.replace(regex={r'^ba.$':'vvv','foot':'xyz'})
|
A |
B |
0 |
vvv |
abc |
1 |
xyz |
vvv |
2 |
bait |
xyz |
df.replace(regex=[r'^ba.$','foo.$'],value='vvv')
|
A |
B |
0 |
vvv |
abc |
1 |
vvv |
vvv |
2 |
bait |
vvv |