Використовуйте векторизований 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 або регулярний вираз: 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
тут ми отримуємо точну відповідність у другому рядку і відбувається заміна.