如何用pandas str.replace仅替换单元格中单独出现的指定单词?
解决方法
要只替换**完全等于"Blah"**的单元格,而非包含"Blah"的单元格,你需要用正则表达式限定匹配整个字符串的开头和结尾——通过^(字符串开头)和$(字符串结尾)精准定位目标内容。
你之前使用的\bBlah\b会匹配所有独立存在的"Blah"单词(比如句子开头的"Blah"),因此会替换所有包含独立"Blah"的单元格内容,这不符合你的需求。
正确代码实现
import pandas as pd data={"Col":["Blah","Blah gah","Blah bluh"],'Subs':["one","two","three"]} df=pd.DataFrame(data) # 仅替换整个单元格内容为"Blah"的情况 df["Col"] = df["Col"].str.replace(r'^Blah$', "Blah ALL", regex=True) print(df)
输出结果
| Col | Subs |
|---|---|
| Blah ALL | one |
| Blah gah | two |
| Blah bluh | three |
补充说明
^Blah$表示匹配**从字符串开头到结尾完全是"Blah"**的内容,只会替换那些仅包含"Blah"的单元格。- 如果需要忽略大小写匹配,可以在正则后添加
flags=re.IGNORECASE参数(需提前导入re模块)。
内容的提问来源于stack exchange,提问作者mggo256
相关产品推荐
相关产品推荐

