熊猫记忆释放

时间:2018-03-06 17:19:25

标签: python pandas memory

我试图了解python中的new_df = pd.merge(df1, df2, on='level', how='inner') del df1 del df2 运算符。我正在合并两个大数据帧并尝试删除参与的数据帧。

gc.collect

这会释放df1和df2分配的内存,还是只删除引用?

我也尝试使用{{1}}但是,我在合并后的第一个操作中出现内存错误

1 个答案:

答案 0 :(得分:3)

不,del没有任何与内存管理或垃圾回收有关。它只减少一个称为引用计数器的东西 - 每个对象都有一个。

一旦对象的引用计数器降为0,这意味着它不再可以通过任何变量访问,并且在下次收集器执行其操作时将被垃圾收集。

因此,总而言之,只要没有其他变量当前引用该对象,对对象调用del最终将在其回收的内存中结束。

另见Is there a way to get the current ref count of an object in Python?