我试图了解python中的new_df = pd.merge(df1, df2, on='level', how='inner')
del df1
del df2
运算符。我正在合并两个大数据帧并尝试删除参与的数据帧。
gc.collect
这会释放df1和df2分配的内存,还是只删除引用?
我也尝试使用{{1}}但是,我在合并后的第一个操作中出现内存错误
答案 0 :(得分:3)
不,del
没有任何与内存管理或垃圾回收有关。它只减少一个称为引用计数器的东西 - 每个对象都有一个。
一旦对象的引用计数器降为0,这意味着它不再可以通过任何变量访问,并且在下次收集器执行其操作时将被垃圾收集。
因此,总而言之,只要没有其他变量当前引用该对象,对对象调用del
最终将在其回收的内存中结束。
另见Is there a way to get the current ref count of an object in Python?