Replacing a string that appears as '??'

Viewed 29

I am attempting to replace '??' in the following string: 'Martin ??degaard' the ?? should be an Ø but I am trying to replace it with just an O.

The string is located in a dataframe and I have attempted this using the following code:

df = df.replace('??', 'O', regex=True)

I end up getting the following error:

re.error: nothing to repeat at position 0

Any help would be much appreciated

1 Answers

? is a special character in RegEx and needs to be escaped. The RegEx to match ?? literally is \?\?.

The issue is reproducible without pandas just using the re module, so ideally your MRE should not have used pandas. Here is the working code just with re, which will work by extension for your dataframe:

import re
str_ = 'Martin ??degaard'
print(re.sub('\?\?', 'O', str_))

Output:

Martin Odegaard

So use:

df = df.replace('\?\?', 'O', regex=True)
Related