Pandas:在数据帧中使用.replace.,但只在完全匹配的情况下使用



在我的Dataframe中,我使用以下内容将Brand列中的"stack"替换为"stackoverflow">

df['Brand'] = df['Brand'].replace('stack', 'stackoverflow', regex=True)

问题是,如果列中存在stackoverflow,我最终会出现stackoverflow溢出。

当列中的字段仅等于stack而不影响列中可能包含关键字stack的其他行时,是否有方法替换stack?

如果有多个替换要做,这个应该做n会很有用:

replace_dict = {'stack' : 'stackoverflow'}
replacement = {rf'b{k}b': v for k, v in replace_dict.items()}
df['Brand'] = df['Brand'].replace(replacement, regex=True)

发现了解决方案:

df['Brand'] = df['Brand'].str.replace(r'(?i)stackb', r'stackoverflow')

只需将regex参数设置为False。

这样可以确保只替换完全匹配,而不替换任何部分匹配。

最新更新