Я довольно новичок в Python и в настоящее время работаю над проектом, в котором у меня есть два кадра данных. Один содержит всех клиентов и один содержит рефералов. Цель состоит в том, чтобы выяснить, кто из упомянутых организаций успешно стал клиентами. У меня нет первичного ключа для работы, и поэтому я должен сделать это, основываясь на следующих полях, которые имеют оба фрейма данных:
Полное имя, электронная почта, номер телефона.
Из исследования я считаю FuzzyWuzzy это лучшая библиотека для использования. Тем не менее, я концептуально застрял в попытке выяснить, как написать код, который будет
A. извлечь все прямые совпадения из 3 полей выше
B. Извлеките все частичные совпадения из полей «Полное имя» и «Электронная почта» (частичные совпадения были бы полезны для извлечения любых потенциальных опечаток)
и предоставьте мне эти результаты в новом фрейме данных.
Я попытался поместить все поля в один файл и получил следующий код, но столкнулся с ошибками
choices = df['Full Name Contact']
query=df['Full name Inquiry']
process.extractOne(query, choices)
TypeError: expected string or bytes-like object
и
df['partial_ratio'] = df.apply(lambda x: fuzz.partial_ratio(x['Full name Inquiry'], x['Full Name Contact']), axis=1)
TypeError: ("object of type 'float' has no len()", 'occurred at index 5550')
Я успешно сделать это на Excel, используя IndexMatch и Vlookup, но это слишком много времени. Особенно при сравнении частичных совпадений по именам.
Любая помощь будет принята с благодарностью. Заранее спасибо!