如何使用Python将DF列中的单词替换为另一个单词-不包含子字符串

问题描述

我正在尝试实现Python中的 SAS TRANWRD 功能,以将'WORD'替换为另一个'WORD'。

我尝试使用Python中可用的 str.replace replace 方法,但是这些方法除了替换以外,还替换了SUBSTRING 。字。

代码

DICT1 = {'NZ':'NEW ZEALAND'}

for k,v in DICT1.items():
    df['COL1'] = df['COL1'].str.replace(k,v)

例如:

NZ COMPANY LIMITED --> NEW ZEALAND COMPANY LIMITED - *(Expected)*

GONZU ENTERPRISE --> GONEW ZEALANDU ENTERPRISE - *(Unexpected)*

在SAS中,此问题应引起注意,因为TRANWRD函数仅在找到空间边界后才替换单词。

有人可以帮助您在Python中实现类似的功能吗?

解决方法

使用利用单词边界元字符copyPass.material.transparent = true

的正则表达式搜索模式

示例:

\b

示例2:

遍历多个短语和替换项

import re

seekword = "Bob"
rplcword = "Bubba"

phrase = "Hello there Bob"
phrasex = re.sub(r"\b"+seekword+r"\b",rplcword,phrase)

print (phrasex)