df_rem = df[~df.duplicated(['sender', 'receiver', 'date'], keep=False)]
df_possible_dup = pd.merge(df_rem, df, on='date', suffixes=['', '_j'])
df_possible_dup.apply(lambda x: fuzz.ratio(x['sender'], x['sender_j']) >= 
    50 and x['id'] != x['id_j'], axis=1)
Поиск дубликатов, соответствующих определенным условиям в python