Неполное совпадение имени с полным именем, используя Python - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть список в столбце. Например, это выглядит так:

powderA1992
powderA199
creamB2001
creamB200

Предполагается, что правильными точками данных являются powederA1992 и creamB2000.

Как сопоставить и заменить в новом столбце для powderA199 чтобы соответствовать powderA1992?

Небольшой пример в этом вопросе, но у меня есть 60 000 записей.

Вот мой код:

from fuzzywuzzy import fuzz, process

sellers= dataset['seller_name']
sellers = sellers.dropna()

print (sellers.head(10))

sellers2 = sellers.copy()
sellers2.drop_duplicates(keep='first', inplace=False)
print (sellers2.head(10))

print(len(sellers))
print (len(sellers2))

def match_term(term, list_names,min_score=0):
    max_score = -1
    max_name = ""
    for term2 in list_names:
        score = fuzz.ratio(term, term2)
        if (score > min_score) & (score > max_score):
            max_name = term2
            max_score = score
    return (max_name, max_score)

for i in sellers:
    print (i, match_term(i, sellers2,20))

...