我基本上是在尝试使用近似匹配来加入2个数据帧。下面列出了我的总体操作方法:
这是我的代码:
def closest_match(x):
matched = (process.extract(x, matchlist[matchlist.match_name.str.startswith(x[:3])].match_name, limit=1, scorer=fuzz.token_sort_ratio))
if matched:
print(matched[0])
return matched[0][0]
else:
return None
df1['key'] = df1.df1_name.apply(lambda x: closest_match(x))
# merge with 2nd df
joined = df1.merge(df2, left_on='key', right_on='df2_name')
这里的问题与速度有关。对于10000次迭代的循环,此代码花费很长时间。我需要10万次比赛。如何加快此代码的速度?