Python:比较2组数据,yield best match and match %
Python: Comparing 2 sets of data, yield best match and match %
我看过很多关于这个主题的问答,但是 none 包含我正在寻找的输出类型。任何关于此的智慧之言将不胜感激!
- 我有 2 个列表...两个列表都包含 1 列,包括 全名|大学(即姓名和大学,串联并用竖线分隔)
- 由于昵称和大学缩写的原因,并不总是完全匹配。我想将列表 1 中的每条记录与列表 2 中的每条记录进行比较,并找到最接近的匹配项。
- 然后我想生成一个包含 3 列的输出文件:列表 1 中的每个项目、列表 2 中最接近的匹配项以及匹配项 %。
有人可以分享示例代码吗?谢谢!
为了帮助您入门,这里有一个答案可以提供全名或大学的匹配项 - 您可以将其扩展为包括使用 fuzzywuzzy 等库的模糊搜索:
对于这两个列表,将每个字符串拆分为一个 [全名,大学] 列表(如果某些字符串不包含“|”字符,您可能需要将其包装在一个try, except
或 if
语句):
new_list = [item.split('|') for item in old_list]
运行 以下命令匹配任一元素(假设一个列表称为 list1
,另一个列表称为 list2
):
matches = [val for val in list1 for item in list2 if val[0] == item[0] or val[1] == item[1]]
我看过很多关于这个主题的问答,但是 none 包含我正在寻找的输出类型。任何关于此的智慧之言将不胜感激!
- 我有 2 个列表...两个列表都包含 1 列,包括 全名|大学(即姓名和大学,串联并用竖线分隔)
- 由于昵称和大学缩写的原因,并不总是完全匹配。我想将列表 1 中的每条记录与列表 2 中的每条记录进行比较,并找到最接近的匹配项。
- 然后我想生成一个包含 3 列的输出文件:列表 1 中的每个项目、列表 2 中最接近的匹配项以及匹配项 %。
有人可以分享示例代码吗?谢谢!
为了帮助您入门,这里有一个答案可以提供全名或大学的匹配项 - 您可以将其扩展为包括使用 fuzzywuzzy 等库的模糊搜索:
对于这两个列表,将每个字符串拆分为一个 [全名,大学] 列表(如果某些字符串不包含“|”字符,您可能需要将其包装在一个
try, except
或if
语句):new_list = [item.split('|') for item in old_list]
运行 以下命令匹配任一元素(假设一个列表称为
list1
,另一个列表称为list2
):matches = [val for val in list1 for item in list2 if val[0] == item[0] or val[1] == item[1]]