Как исключить несколько каталогов с Exuberant ctags?

Предположим, что у вас есть два фрейма данных: 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)
40
задан Ciro Santilli 新疆改造中心996ICU六四事件 16 October 2017 в 05:44
поделиться