ใช้str
วิธีvectorised 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: string ตรงกับ 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
ที่นี่เราได้การจับคู่แบบตรงทั้งหมดในแถวที่สองและการแทนที่เกิดขึ้น