如何基于字典键值对替换子字符串的多个实例


Dataframe
|Name|
|----|
|abc |
|pqr |
|xyz |
Input Dict: {a:1,b:2,p:3,r:4}
output
Dataframe
|Name|
|----|
|12c |
|3q4 |
|xyz |
My loop is given below
for k,l in dict:
for z in df:
if k in z:
new_string = z.replace(k,l)
rows_with_replacement.append(new_string)
else:
new_string=z
rows_with_replacement.append(new_string)

使用Series.str.translate():

df = pd.DataFrame({'Name': ['abc', 'pqr', 'xyz']})
d = {'a': '1', 'b': '2', 'p': '3', 'r': '4'}
df.Name = df.Name.str.translate(str.maketrans(d))
print(df)

结果:

Name
0  12c
1  3q4
2  xyz

对于多个符号:

df = pd.DataFrame({'Name': ['abc', 'pqr', 'xyz']})
d = {'ab': '11', 'b': '2', 'pq': '33', 'r': '4'}
df.Name = df.Name.str.replace('|'.join(d.keys()), lambda x: d[x[0]], regex=True)
print(df)
Name
0  11c
1  334
2  xyz

最新更新