gpt4 book ai didi

python - 生成正则表达式列表以替换数据框中的单词列表python

转载 作者:太空宇宙 更新时间:2023-11-03 15:48:27 25 4
gpt4 key购买 nike

我正在尝试向数据帧添加新的列标题,这可能与现有数据帧标题冲突。

我想使用df.replace(to_replace, replacements, regex=True)用替换列表中的单词替换与现有 df 列匹配的任何整个单词。

举个例子:

如果是当前df.columns = ['Test 1', 'Test 2']

我想将 df 中“Test 1”的所有字符串替换为“Test 1_Test 1”

如果我使用:

df.replace(r'\bTest 1\b', 'Test 1_Test1', regex=True) 

我可以仅替换“测试 1”的实例,但是我想将其概括为能够用不同的单词替换列标题的所有实例。

我对根本原因的理解是我没有正确生成正则表达式列表,并且想知道如何生成。

目前我正在使用:

replace_list = list( r'\b' + pd.Series(list(df.columns)) + '\b')

但是这不起作用。

感谢所有帮助。

最佳答案

由于您传递给正则表达式模式的变量看起来像 word1|word2|more_here,因此您可以使用

r'(?:\b|(?<=_))(?:' + pd.Series(list(df.columns)) + r')(?=\b|_)'

此模式将匹配单词边界或下划线之间的替代选项之一。 Lookbehind 和 Lookahead 内部交替的原因是单词边界本身需要在搜索单词的两侧有一个非单词字符,这意味着作为单词字符的下划线会使匹配失败。

关于python - 生成正则表达式列表以替换数据框中的单词列表python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41553643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com