Предположим, что у вас есть два фрейма данных: df_1 и df_2, имеющие несколько полей (column_names), и вы хотите найти только те записи из df_1, которые не находятся в df_2, на основе некоторых полей (например, fields_x, fields_y), следуют следующему шаги.
Step1.Add столбца key1 и key2 в df_1 и df_2 соответственно.
Step2.Merge dataframes, как показано ниже. field_x и field_y - наши искомые столбцы.
Step3.Выберите только те строки из df_1, где key1 не равен key2.
Step4.Drop key1 и key2.
Этот метод позволит решить вашу проблему и быстро работать даже с большими наборами данных. Я пробовал это для dataframes с более чем 1.000.000 строк.
df_1['key1'] = 1
df_2['key2'] = 1
df_1 = pd.merge(df_1, df_2, on=['field_x', 'field_y'], how = 'left')
df_1 = df_1[~(df_1.key2 == df_1.key1)]
df_1 = df_1.drop(['key1','key2'], axis=1)