为了提供一点背景信息,我们列出了一个我们试图瞄准的潜在客户列表
我试图将驻留在此目标客户机数据库中的名称与当前现有客户机进行比较
我想首先获得所有匹配姓名的列表(潜在客户列表中已经存在于数据库中的姓名)。但是,由于拼写上的细微差异,例如(“Mike R。Lowry“vs”Mike Lowry”)我们使用的是Levenshtein方法
所以我有:
我尝试使用FuzzyWzzy在Python中实现这一点。以下是我的尝试:
import pandas as pd
from fuzzywuzzy import process, fuzz
prospects = pd.read_csv(r'C:\Users\123\Downloads\prospects.csv')
ourclients = pd.read_csv(r'C:\Users\123\Downloads\ourclients.csv')
actual = []
similarity = []
for i in prospects.fullname.astype(str):
ratio = process.extract( i, ourclients.Names.astype(str), limit=1)
actual.append(ratio[0][0])
similarity.append(ratio[0][1])
ourclients['actual'] = pd.Series(actual)
ourclients['similarity'] = pd.Series(similarity)
hr.head(3)
然而,这需要很长时间,并且不断地给我带来不同类型的错误。首先是字符串错误,所以我将astype(str)应用于prospects.fullname,使其成为“prospects.fullname.astype(str)”,如上所示。我很难做到这一点,因为我在运行逻辑后不断出现错误,但每次运行我都要等待1个多小时
有更好的方法吗?我也愿意在SQLServer中使用Levenshtein function来实现这一点。然而,我看到的所有示例都只使用特定的字符串输入。我不知道如何编写逻辑来使用Levenshtein对照表2中的列检查表1中的列
任何帮助或指导都将不胜感激!谢谢大家!
目前没有回答
相关问题 更多 >
编程相关推荐