删除数据帧但仍会丢失内存

我有两个大型数据帧,分别称为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所指出的,尚存的引用将意味着该数据帧将不会被删除。一旦删除了对数据帧的所有引用,删除数据帧后就释放了内存。


眼眸繁星
浏览 115回答 1
1回答

扬帆大鱼

import gcdel df0del df1 gc.collect()原因是删除df0和df1时,程序仅删除对内存中数据的引用。执行gc.collect()时,它将检查内存中未使用的那些数据并将其删除。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python