2024-10-01 19:24:10 发布
网友
我有一个示例数据帧文本列,其中包含单词“eng”和单词“engine”的字符串。在
ID Text 1 eng is here 2 engine needs washing 3 eng is overheating
用‘engine’这个词代替‘engine’。我使用以下代码:
但这把我第二排的文字弄乱了。第二排变成
ID Text 2 engineine needs washing
有没有办法让单词replace只在整个单词都说“eng”时才替换?在
用单词边界字符\b包装关键字:
\b
df['Text'].str.replace(r'\beng\b', 'engine') 0 engine is here 1 engine needs washing 2 engine is overheating Name: Text, dtype: object
如果要以这种方式替换多个关键字,请使用regex=True开关将字典传递给replace:
regex=True
replace
您可以尝试这样的正则表达式:
import re df['Text'] = df['Text'].map(lambda x: re.sub(r'\beng\b', 'engine', x))
此给定正则表达式中的\b标记与“wordbounders”匹配,因此“eng”将被强制用空格括起来。在
添加空白并从您自己的代码中修复了该问题
df['Text'].str.replace('eng ', 'engine ') Out[736]: 0 engine is here 1 engine needs washing 2 engine is overheating Name: Text, dtype: object
更新
用单词边界字符
\b
包装关键字:如果要以这种方式替换多个关键字,请使用
^{pr2}$regex=True
开关将字典传递给replace
:您可以尝试这样的正则表达式:
此给定正则表达式中的\b标记与“wordbounders”匹配,因此“eng”将被强制用空格括起来。在
添加空白并从您自己的代码中修复了该问题
更新
^{pr2}$相关问题 更多 >
编程相关推荐