I would like to do following:
data={'Name':['Mcdonald']}
df=pandas.DataFrame(data)
df['Name'] = df['Name'].replace('Mc([a-z])', "Mc"+r'\1'.upper(), regex=True)
Expected result: McDonald
Given result: Mcdonald
Any suggestions?
I would like to do following:
data={'Name':['Mcdonald']}
df=pandas.DataFrame(data)
df['Name'] = df['Name'].replace('Mc([a-z])', "Mc"+r'\1'.upper(), regex=True)
Expected result: McDonald
Given result: Mcdonald
Any suggestions?
Use .str.replace:
df["Name"] = df["Name"].str.replace(
r"(?<=Mc)([a-z]+)", lambda g: g.group(1).title(), regex=True
)
print(df)
Prints:
Name
0 McDonald
1 McArthur
df used:
Name
0 Mcdonald
1 Mcarthur