Verwenden Sie die vektorisierte str
Methode replace
:
In [30]:
df['range'] = df['range'].str.replace(',','-')
df
Out[30]:
range
0 (2-30)
1 (50-290)
BEARBEITEN
Wenn wir uns also ansehen, was Sie versucht haben und warum es nicht funktioniert hat:
df['range'].replace(',','-',inplace=True)
Aus den Dokumenten geht Folgendes hervor:
str oder regex: str: string, der genau mit_replace übereinstimmt, wird durch value ersetzt
Da die str-Werte nicht übereinstimmen, erfolgt keine Ersetzung. Vergleichen Sie Folgendes:
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
Hier erhalten wir eine genaue Übereinstimmung in der zweiten Reihe und der Austausch erfolgt.