如何从内存中删除多个大 pandas (python)数据帧以保存RAM? [英] How to delete multiple pandas (python) dataframes from memory to save RAM?
问题描述
我有很多数据帧是作为预处理的一部分而创建的。由于我有限制的6GB RAM,我想从RAM中删除所有不必要的数据帧,以避免在scikit学习中运行GRIDSEARCHCV时内存不足。
1)是否有一个仅列出的功能,当前加载到内存中的所有数据帧?
我尝试过dir(),但它提供了除数据框之外的许多其他对象。
2)我创建了要删除的数据框列表
del_df = [Gender_dummies,
capsule_trans,
col,
concat_df_list,
coup_CAPSULE_dummies]
&在del_df中为我运行
/ pre>
del(i)
但它不删除数据框。但是像下面这样删除数据框
就是从内存中删除数据框。del Gender_dummies
del col
解决方案
del
语句不会删除一个实例,它只会删除一个名称。
当您执行
del i
时,您将删除只是名字我 - 但实例仍然绑定到一些其他名称,所以它不会是垃圾收集。
如果你想要释放内存,你的数据框必须是垃圾收集,即删除所有引用。
如果你动态地创建了日期帧列出,然后删除该列表将触发垃圾收集。
>>> lst = [pd.DataFrame(),pd.DataFrame(),pd.DataFrame()]
>>> del lst#memory被释放
如果你创建了一些变量,你将不得不全部删除它们。 / h2>
>>> a,b,c = pd.DataFrame(),pd.DataFrame(),pd.DataFrame()
>>> lst = [a,b,c]
>>> del a,b,c#dfs仍然在列表
>>> del lst#memory release now
I have lot of dataframes created as part of preprocessing. Since I have limited 6GB ram, I want to delete all the unnecessary dataframes from RAM to avoid running out of memory when running GRIDSEARCHCV in scikit-learn.
1) Is there a function to list only, all the dataframes currently loaded in memory?
I tried dir() but it gives lot of other object other than dataframes.
2) I created a list of dataframes to delete
del_df=[Gender_dummies, capsule_trans, col, concat_df_list, coup_CAPSULE_dummies]
& ran
for i in del_df: del (i)
But its not deleting the dataframes. But deleting dataframes individially like below is deleting dataframe from memory.
del Gender_dummies del col
解决方案
del
statement does not delete an instance, it merely deletes a name.When you do
del i
, you are deleting just the name i - but the instance is still bound to some other name, so it won't be Garbage-Collected.If you want to release memory, your dataframes has to be Garbage-Collected, i.e. delete all references to them.
If you created your dateframes dynamically to list, then removing that list will trigger Garbage Collection.
>>> lst = [pd.DataFrame(), pd.DataFrame(), pd.DataFrame()] >>> del lst # memory is released
If you created some variables, you will have to delete them all.
>>> 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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!