Pandas.str.replace正则表达式应用程序

时间:2017-06-16 17:29:54

标签: python regex python-3.x pandas replace

我正在尝试进行一些数据质量控制,并希望使用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)

有没有人有任何想法如何调整此代码工作?搜索字符串非常出色。

2 个答案:

答案 0 :(得分:0)

如果您正在严格尝试替换“BLDG”和“UNIT”字样,这样就行了。

df

    Address
0   250 ED ENGLISH DR, BLDG #3 UNIT C

尝试

df.Address.str.replace('BLDG | UNIT ', '')

返回

0    250 ED ENGLISH DR, #3C

答案 1 :(得分:0)

你应该试试这个。

df.Address=df.Address.str.replace(r'250 ENGLISH DR, BLDG #(\d*) UNIT (\S[a-zA-Z]*)', r'250 ENGLISH DR, #\1\2')