【发布时间】:2017-11-19 13:37:07
【问题描述】:
我正在尝试进行一些数据质量控制,并希望使用 Pandas.str.replace 方法使用正则表达式将一个字符串替换为另一个字符串。我正在考虑重新格式化一个看起来像
的字符串#'250 ED ENGLISH DR, BLDG #3 UNIT C,'
这样的:
#'250 ED ENGLISH DR, #3C
我使用了以下内容,但 pandas 没有识别出我正在尝试用正则表达式替换:
df.Address=df.Address.str.replace(r'250 ENGLISH DR, BLDG #\d* UNIT \S[a-z]*', r'250 ENGLISH DR,' + r'(?<=250 ENGLISH DR, BLDG #)\d*' + r'\S{1,2}$', regex=True)
有没有人知道如何调整此代码以使其正常工作?搜索字符串效果很好。
【问题讨论】:
-
在模式中使用捕获组,在替换中使用反向引用。
-
感谢您的回复。这不是我的替换字符串在做什么吗?
-
不,您在替换中使用了正则表达式模式。在模式中捕获您需要使用圆括号保留的部分,并在替换中使用
\n引用它们,其中n是组ID。编号以1开头。
标签: python regex python-3.x pandas replace