Я пытаюсь очистить столбец, используя fuzzywuzzy, используя следующий код:
import pyodbc
from fuzzywuzzy import fuzz
# Getting sql list
conn = pyodbc.connect('Driver={SQL Server};'
'Server=USER-PC\SQLEXPRESS;'
'Database=AdventureWorks2014;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute("SELECT top 100 Publisher FROM dbo.Publishers where publisher like '%Ebate%'")
Product_list = cursor.fetchall()
# Groups of names with Levenshtein distance > 77
Groups = list()
for name in Product_list:
for grp in Groups:
if all(fuzz.ratio(name, wd) > 78 for wd in grp):
grp.append(name)
break
else:
Groups.append([name, ])
print('output Groups:', Groups)
выводит:
output Groups: [[('Ebates.com', ), ('Ebates', ), ('Ebates Inc', ), ('Ebates.com', ), ('Ebates', ), ('Ebates', ), ('Ebates', ), ('Ebates', ), ('Ebates.ca', ), ('Ebates.com', ), ('Ebates', )], [('ExtraRebates', ), ('Mr. Rebates', ), ('RebatesMe', ), ('ExtraRebates', ), ('Mr. Rebates', ), ('RebatesMe', )] ...
Будучи новичком в Python, я застрял, находя способ:
- Назовите каждую группу в отдельном столбце.
- Экспорт результатов (группировка, издатель) в новую таблицу на SQL.
Любая помощьвысоко ценится!