+-

我有许多数据帧作为预处理的一部分创建.由于我有6GB内存限制,我想从RAM中删除所有不必要的数据帧,以避免在scikit-learn中运行GRIDSEARCHCV时内存不足.
1)是否只有列出的功能,当前加载到内存中的所有数据帧?
我尝试了dir()但它提供了许多除dataframe之外的其他对象.
2)我创建了一个要删除的数据帧列表
del_df=[Gender_dummies,
capsule_trans,
col,
concat_df_list,
coup_CAPSULE_dummies]
&安培;跑
for i in del_df:
del (i)
但它没有删除数据帧.但是单独删除数据帧
如下所示是从内存中删除数据帧.
del Gender_dummies
del col
最佳答案
del语句不删除实例,它只删除一个名称.
当您执行del i时,您只删除名称i – 但实例仍然绑定到其他名称,因此它不会被Garbage-Collected.
如果要释放内存,则必须对数据帧进行Garbage-Collected,即删除对它们的所有引用.
如果您动态创建日期框列表,则删除该列表将触发垃圾收集.
>>> lst = [pd.DataFrame(), pd.DataFrame(), pd.DataFrame()]
>>> del lst # memory is released
如果您创建了一些变量,则必须将它们全部删除.
>>> a, b, c = pd.DataFrame(), pd.DataFrame(), pd.DataFrame()
>>> lst = [a, b, c]
>>> del a, b, c # dfs still in list
>>> del lst # memory release now
点击查看更多相关文章
转载注明原文:如何从内存中删除多个pandas(python)数据帧以节省RAM? - 乐贴网