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)
添加回答
举报