3 回答
TA贡献1811条经验 获得超5个赞
使用replace
与regex
data['Address Difference']=data['GOOD_ADR1'].replace(regex=r'(?i)'+ data['BAD_ADR1'],value="")
TA贡献1865条经验 获得超7个赞
我会使用一个可以跨输入映射的函数。这应该很快。
该函数将用于str.find查看另一个字符串是否是子集。如果结果str.find是,-1则无法找到子字符串。否则,根据找到的位置和子串的长度,提取子串。
def rm(x, y):
i = x.find(y)
if i > -1:
j = len(y)
return x[:i] + x[i+j:]
else:
return x
df['Address Difference'] = [*map(rm, df.GOOD_ADR1, df.BAD_ADR1)]
df
BAD_ADR1 GOOD_ADR1 Address Difference
0 123 Fake Street 123 Fake Street Apt 101 Apt 101
TA贡献1830条经验 获得超3个赞
您可以从好地址替换坏地址部分
df['Address_Difference'] = df['Good_Address'].replace(df['Bad_Address'], '', regex = True).str.strip()
Bad_Address Good_Address Address_Difference
0 123 Fake Street 123 Fake Street Apt 101 Apt 101
添加回答
举报