4 回答
TA貢獻1817條經驗 獲得超6個贊
您正在使用正則表達式,并且 () 是特殊字符。您必須轉義它,因為您想匹配字符而不是在正則表達式上下文中使用特殊用例。
import pandas as pd
data={'box':['11M000','11M000(MU)']}
df = pd.DataFrame(data)
df['box'] = df['box'].str.replace(".\(MU", " (MU", regex=True)
print(df)
TA貢獻1818條經驗 獲得超7個贊
在正則表達式中轉義(),因為特殊字符并用反向引用替換\\1,regex=True是默認的Series.str.replace,所以應該省略:
data={'box':['11M000','11M000(MU)']}
df = pd.DataFrame(data)
df['box'] = df['box'].str.replace('(\(MU\))'," \\1")
print (df)
box
0 11M000
1 11M000 (MU)
沒有帶參數的正則表達式解決方案,regex=False也沒有轉義():
df['box'] = df['box'].str.replace('(MU)'," (MU)", regex=False)
print (df)
box
0 11M000
1 11M000 (MU)
添加回答
舉報
