У меня есть df1 с 55 миллионами наблюдений (три столбца) и df2 с 4000 наблюдениями и двумя столбцами. Мне нужно исключить эти 4000 на основе двух столбцов. У меня 100 ГБ ОЗУ, но Python пытается использовать больше памяти, и процесс останавливается. Есть ли у вас предложения по поводу того, что можно улучшить? Я использую pandas для чтения файла. Размер файла df1 составляет 19 ГиБ
Код выглядит так:
df1=pd.read_table(current_path + '/df1', delim_whitespace=True, header=None)
df2=pd.read_table(current_path + '/df2', delim_whitespace=True,header=None)
df1.columns=["col1","col2","col3"]
df2.columns=["col1","col2"]
df1=df1[~df1.set_index(['col1','col2']).index.isin(df2.set_index(['col1','col2']).index)]