用pandas替换完整的子字符串结构代表

2024-10-01 19:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个示例数据帧文本列,其中包含单词“eng”和单词“engine”的字符串。在

ID  Text
1   eng is here
2   engine needs washing
3   eng is overheating 

用‘engine’这个词代替‘engine’。我使用以下代码:

^{pr2}$

但这把我第二排的文字弄乱了。第二排变成

ID  Text
2   engineine needs washing

有没有办法让单词replace只在整个单词都说“eng”时才替换?在


Tags: 数据字符串代码text文本id示例here
3条回答

用单词边界字符\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

^{pr2}$

您可以尝试这样的正则表达式:

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

更新

^{pr2}$

相关问题 更多 >

    热门问题