gpt4 book ai didi

python - 使用 pandas 和 fuzzwuzzy 匹配相似的列元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:52:50 26 4
gpt4 key购买 nike

我有一个 Excel 文件,其中一列包含 1000 多个公司名称,另一列包含大约 20,000 个公司名称。

目标是匹配尽可能多的名字。问题是第一列 (1000+) 中的名称格式不正确,这意味着“公司名称”字符串可能类似于 "9Com(panynAm9e00"。我我正在尝试找出解决此问题的最佳方法。(只有 12 个名称完全匹配)

尝试不同的方法后,我最终尝试使用正则表达式匹配每个名称中的 4-5 个或更多字符,具体取决于每个字符串的长度。但我只是在努力寻找最有效的方法来做到这一点。

例如:

第 1 列

 1. 9Com(panynAm9e00 
2. NikE4
3. Mitrosof2

第 2 列

 1. Microsoft
2. Company Name
3. Nike

获取第 1 列 中的第一个元素并在第 2 列 中查找匹配项。如果没有完全匹配,则查找具有 4-5 个相同字符的字符串。

有什么建议吗?

最佳答案

我建议使用 pandaspd.read_excel() 读取您的 Excel 文件,然后使用 fuzzywuzzy 执行匹配,因为示例:

import pandas as pd
from fuzzywuzzy import process, fuzz

df = pd.DataFrame([['9Com(panynAm9e00'],
['NikE4'],
['Mitrosof2']],
columns=['Name'])

known_list = ['Microsoft','Company Name','Nike']

def find_match(x):

match = process.extractOne(x, known_list, scorer=fuzz.partial_token_sort_ratio)[0]
return match

df['match found'] = [find_match(row) for row in df['Name']]

产量:

               Name   match found
0 9Com(panynAm9e00 Company Name
1 NikE4 Nike
2 Mitrosof2 Microsoft

关于python - 使用 pandas 和 fuzzwuzzy 匹配相似的列元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52633376/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com