【发布时间】:2021-10-23 22:41:43
【问题描述】:
我知道有人以某种方式提出过这个问题,所以很抱歉。我正在尝试将列表 1(sample_name)模糊匹配到列表 2(实际名称)。 Actual_name 的名称比列表 1 的名称多得多,而且我一直在运行模糊匹配,但效果不佳。我尝试了多种模糊匹配方法(部分,set_token),但由于列表 2 中有更多非常相似的名称,所以一直遇到问题。有什么办法可以改善这里的匹配。理想情况下,希望有列表 1,列表 2 中的匹配名称,匹配分数在新数据框中的第 3 列。任何帮助将非常感激。谢谢。
目前为止使用过:
df1=sample_df['sample_name'].to_list()
df2=actual_df['actual_name'].to_list()
response = {}
for name_to_find in df1:
for name_master in df2:
if fuzz.partial_ratio(name_to_find,name_master) > 90:
response[name_to_find] = name_master
break
for key, value in response.item():
print('sample name' + key + 'actual_name' + value)
| sample_name | actual_name |
|---|---|
| jtsports | JT Sports LLC |
| tombaseball | Tom Baseball Inc. |
| context express | Context Express LLC |
| zb sicily | ZB Sicily LLC |
| lightening express | Lightening Express LLC |
| fire roads | Fire Road Express |
| N/A | Earth Treks |
| N/A | TS Sports LLC |
| N/A | MM Baseball Inc. |
| N/A | Contact Express LLC |
| N/A | AB Sicily LLC |
| N/A | Lightening Roads LLC |
【问题讨论】:
-
那么您是否只是想获得
sample_name列与actual_name列的“匹配分数”?
标签: python fuzzy-search fuzzywuzzy