def get_donors(row):
    d = donors.apply(lambda x: fuzz.ratio(x['name'], row['name']) * 2 if 
        row['Email'] == x['Email'] else 1, axis=1)
d = d[d >= 75]
if len(d) == 0:
    v = [''] * 3
else:
    v = donors.ix[d.idxmax(), ['name', 'Email', 'Date']].values
return pd.Series(v, index=['donor name', 'donor email', 'donor date'])
pd.concat((fundraisers, fundraisers.apply(get_donors, axis=1)), axis=1)
Нечеткое слияние/сопоставление Python Pandas с дубликатами