Let's say I have the following df:
import pandas as pd
df = pd.DataFrame({'A':['1^','2','3'],
'B':['1^','2','3'],
'C':['1^','2','3']})
df
A B C
0 1^ 1^ 1^
1 2 2 2
2 3 3 3
I want to remove the '^' from the entire dataframe, so I thought using the .replace() method would work:
cols_to_check = ['A','B', 'C']
df[cols_to_check] = df[cols_to_check].replace({'^':''}, regex=True)
However, this is the output:
df
A B C
0 1^ 1^ 1^
1 2 2 2
2 3 3 3
Nothing happens! This works with any character other than the carat symbol and it's frustrating me. Here is an example:
df[cols_to_check] = df[cols_to_check].replace({'2':''}, regex=True)
df
A B C
0 1^ 1^ 1^
1
2 3 3 3
Why is the carat symbol so stubborn? Is there a way I can fix this? It would be really helpful. Thanks!