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