【发布时间】:2015-11-21 17:36:27
【问题描述】:
作为预处理的一部分,我创建了很多数据框。由于我的内存有限 6GB,我想从 RAM 中删除所有不必要的数据帧,以避免在 scikit-learn 中运行 GRIDSEARCHCV 时内存不足。
1) 是否有仅列出当前加载到内存中的所有数据帧的功能?
我尝试了 dir() 但它提供了许多其他对象而不是数据帧。
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
【问题讨论】:
-
我注意到这个问题还没有公认的答案。我发现here 的答案特别有用,至少在我个人的经验中是这样。从本质上讲,即使 gc.collect() 也不能确保您取回 RAM,但是在不同的进程中运行中间数据帧将确保在进程结束时返回进程占用的资源。该链接还提供了关于如何减少 Pandas 内存使用量的提示。
标签: python memory-management pandas dataframe ram