我正在尝试进行一些数据质量控制,并希望使用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)
有没有人有任何想法如何调整此代码工作?搜索字符串非常出色。
答案 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')