Regex 用修改的正则表达式替换pandas列中的正则表达式匹配
我正在尝试用修改后的正则表达式替换正则表达式匹配项。 以下是我的数据框中的列Regex 用修改的正则表达式替换pandas列中的正则表达式匹配,regex,pandas,replace,Regex,Pandas,Replace,我正在尝试用修改后的正则表达式替换正则表达式匹配项。 以下是我的数据框中的列 df['newcolumn'] 0 Ther was a quick brown appl_product_type in ("eds") where blah blan appl_Cust_type =("value","value") 1 Ther was a quick brown appl_product_type = ("EDS") where blah blan appl
df['newcolumn']
0 Ther was a quick brown appl_product_type in ("eds") where blah blan appl_Cust_type =("value","value")
1 Ther was a quick brown appl_product_type = ("EDS") where blah blan appl_Cust_type =("value","value")
2 Ther was a quick brown appl_product_type in ("eds") where blah b
3 Ther was a quick brown appl_product_type in = ("EDS") where blah blan appl_Cust_type = ("value")
4 Ther was a quick brown where blah blan appl_Cust_type
Name: newcolumn, dtype: object
我想将所有出现的字符串(如appl\U product\U type='EDS)替换为“upperappl\U product\U type='EDS”
我正在使用以下代码,但出现错误
newcolumn.replace(value='upper\[\w]+\s+[in=]+[\s+\([\"\w+\,+\s+]+\)', regex='[\w]+\s+[in=]+[\s+\([\"\w+\,+\s+]+\)')
error: bad escape \w at position 7
有没有办法解决这个问题??请帮忙。几件事-
您不能在替换值中使用\w并期望它知道要填写什么
您的正则表达式格式不正确。使用r生成更简单的正则表达式字符串
你的问题不清楚,因为你问的是一种特定的格式,而你的正则表达式试图捕捉更多。
对于你所尝试的,我有一个稍微更清晰的解决方案,但鉴于你问题的模糊性,我不确定这是否正是你想要的-
df['newcolumn'] = df['newcolumn'].replace({r'([\w_]+\s+(?:in|=|\s)+\(\"(?:\w+\"(?:\,)?(?:\s+)?)+\))' : r'upper(\1)'}, regex=True)
为什么要在替换中使用\w?您应该使用组匹配来代替。非常感谢您的回答。它按预期工作。只是我不明白替换键中的\1在做什么。我已经编辑了问题。我只希望正则表达式匹配整个字符串并替换为upperappl\u product\u type=eds@deepakkumar这不是问题,在正则表达式替换中,可以使用\1、\2等替换正则表达式中的匹配组。因为我用和包围了正则表达式,这是唯一的匹配组\1作为整个正则表达式匹配的替代。我使用了许多不匹配的组?:以避免与组混淆