Python Fuzzy Matching (FuzzyWuzzy) - сохранить только лучший матч

Я пытаюсь нечетко сопоставить два файла CSV, каждый из которых содержит один столбец имен, которые похожи, но не совпадают.

Мой код пока выглядит следующим образом:

import pandas as pd
from pandas import DataFrame
from fuzzywuzzy import process
import csv

save_file = open('fuzzy_match_results.csv', 'w')
writer = csv.writer(save_file, lineterminator = '\n')

def parse_csv(path):

with open(path,'r') as f:
    reader = csv.reader(f, delimiter=',')
    for row in reader:
        yield row


if __name__ == "__main__":
## Create lookup dictionary by parsing the products csv
data = {}
for row in parse_csv('names_1.csv'):
    data[row[0]] = row[0]

## For each row in the lookup compute the partial ratio
for row in parse_csv("names_2.csv"):
    #print(process.extract(row,data, limit = 100))
    for found, score, matchrow in process.extract(row, data, limit=100):
        if score >= 60:
            print('%d%% partial match: "%s" with "%s" ' % (score, row, found))
            Digi_Results = [row, score, found]
            writer.writerow(Digi_Results)


save_file.close()

Вывод следующий:

Name11 , 90 , Name25 
Name11 , 85 , Name24 
Name11 , 65 , Name29

Скрипт работает отлично. Вывод соответствует ожидаемому. Но то, что я ищу, это только лучший матч.

Name11 , 90 , Name25
Name12 , 95 , Name21
Name13 , 98 , Name22

Поэтому мне нужно как-то отбросить дублированные имена в столбце 1, основываясь на самом высоком значении в столбце 2. Это должно быть довольно просто, но я не могу понять это. Любая помощь будет оценена.

Ответы на вопрос(3)

Ваш ответ на вопрос