Use o str
método vetorizado replace
:
In [30]:
df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
range
0 (2-30)
1 (50-290)
EDITAR
Então, se olharmos o que você tentou e por que não funcionou:
df['range'].replace(',','-',inplace=True)
nos documentos , vemos este desc:
str ou regex: str: string que corresponde exatamente a to_replace será substituído por valor
Portanto, como os valores str não correspondem, nenhuma substituição ocorre, compare com o seguinte:
In [43]:
df = pd.DataFrame({'range':['(2,30)',',']})
df['range'].replace(',','-', inplace=True)
df['range']
Out[43]:
0 (2,30)
1 -
Name: range, dtype: object
aqui obtemos uma correspondência exata na segunda linha e a substituição ocorre.