Используйте векторизованный str
метод replace
:
In [30]:
df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
range
0 (2-30)
1 (50-290)
РЕДАКТИРОВАТЬ
Итак, если мы посмотрим, что вы пробовали и почему это не сработало:
df['range'].replace(',','-',inplace=True)
из документации мы видим это описание:
str или regex: str: строка, точно соответствующая to_replace, будет заменена значением
Так как значения str не совпадают, замены не происходит, сравните со следующим:
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
здесь мы получаем точное совпадение во второй строке и происходит замена.