Нечеткая Логика Wuzzy Несколько записей

#jupyter-notebook #fuzzywuzzy

Вопрос:

У меня есть два набора данных: один, содержащий уникальный набор записей с соответствующим округом, и другой, содержащий дубликаты записей с уникальным номером единицы измерения.

Вот пример набора данных, содержащего повторяющиеся записи, но с уникальным номером единицы измерения:

Добровольная пожарная часть Альбиона 62QRS

Добровольная пожарная часть Альбиона 62.

Другой набор данных содержит уникальный департамент и соответствующий округ.

Добровольная пожарная служба Альбиона Эри

Нечеткая логика работает с названием подразделения-Добровольная пожарная часть Альбиона. Проблема в том, что слово Эри применяется только к одной из записей, а другой округ присваивается неправильно.

 import pandas as pd
import numpy as np
import os
from fuzzywuzzy import fuzz
from fuzzywuzzy import process

df_1 = pd.read_csv('ori2.csv')
df_2 = pd.read_csv('EMS.csv')

df_1.rename(columns={'Agency Type' : 'Type'}, inplace=True)
df_1 = df_1.loc[(df_1.Type == "EMS")]
#df_2 = df_2.loc[(df_2.County == "Erie")]
df_2.rename(columns={'ApplicantName' : 'Department'}, inplace=True)


def fuzzy_merge(df_1, df_2, key1, key2, threshold=90, limit=1):
    
    s = df_2[key2].tolist()

    m = df_1[key1].apply(lambda x: process.extract(x, s, limit=limit))    
    df_1['matches'] = m

    m2 = df_1['matches'].apply(lambda x: ', '.join([i[0] for i in x if i[1] >= threshold]))
    df_1['matches'] = m2


 df_1['counties'] = df_2['County']
    
    return df_1
                   
               
               
df = fuzzy_merge(df_1, df_2, 'Department', 'Department', threshold=90, limit=1)
df.sort_values(by='Department',ascending=True).reset_index()
 

Я полагаю, что проблема в том, где я создаю новый столбец в df_1 под названием округа и назначаю его df_2 [«Округ»]. Результатом должен быть Эри, поскольку он находится в одном округе, а не в другом, поскольку код вводится в объединенный фрейм данных.

Спасибо