内存泄漏合并2个熊猫数据框

时间:2019-01-02 17:53:37

标签: pandas merge memory-leaks

我不是第一个问这个问题的人,但是我的问题似乎与我看到的有所不同。基本上,我尝试合并数据帧A.shape = [900k, 6]B.shape = [600k, 6],但遇到pd.merge(A, B, how='left', left_on=[col_1, col_2], right_on=[col_1, col_2])时出现内存错误。 (我有5GB的RAM可用于计算。)

为了尝试绕过它,我尝试像下面这样反复进行,但是在第6次迭代之后,内存计算时间从一个迭代到另一个迭代略有增加,在第7个迭代时爆炸:

def partial_merge(A, partial_B):
    return pd.merge(A, partial_B, 
                 how='left', 
                 left_on=['col_1','col_2'], 
                 right_on = ['col_1','col_2'])

low_bound = 0
for high_bound in tqdm(range(0, merged_stats.shape[0], 10000)):
    A = partial_merge(A, B.iloc[low_bound:high_bound, :])
    gc.collect()
    low_bound = high_bound

有什么主意吗? 我将要把这两个数据帧写入数据库以在那里进行联接的地步。

0 个答案:

没有答案