我有两个大数据帧,分别称为df0(1.2亿个obs)和df1(5000万个obs)。它们具有相同的44个变量(作为列)。我需要附加数据,以便新数据框具有120 + 50 = 170百万个观测值和44列。
我使用:
frames = [df0, df1]
df = pd.concat(frames, ignore_index=True)
or
df = df0.append(df1, ignore_index=True)
它们工作正常。但是当我使用
删除df0和df1时del df0
del df1
系统不释放内存。我已经读过stackoverflow,这对于python /其他语言来说很典型。但是,在此之后,我遇到了内存问题,并且python无法释放该内存。
关于如何避免消耗太多内存的任何建议?
已解决: 正如juanpa.arrivillaga所指出的,尚存的引用将意味着该数据帧将不会被删除。删除所有对数据框的引用后,删除数据框后就释放了内存。
答案 0 :(得分:0)
import gc
del df0
del df1
gc.collect()
原因是当您删除df0和df1时,程序仅删除对内存中数据的引用。当您执行gc.collect()时,它将检查内存中未使用的那些数据并将其删除。 / p>