我正在使用 pandas 运行一个长时间的 ETL 管道。我必须创建不同的 pandas 数据帧,并且我想要释放一些数据帧的内存。
我一直在阅读如何释放内存,我看到运行此命令并不会释放内存:
del dataframe
请参考这个链接:如何删除多个Pandas(Python)数据框以释放内存?,其中一个答案提到del语句并不会删除一个实例,它只是删除了一个名称。
在答案中他们建议将数据框放入列表中,然后删除该列表:
lst = [pd.DataFrame(), pd.DataFrame(), pd.DataFrame()]
del lst
如果我只想发布一个数据框,我需要将其放入一个列表中,然后像这样删除一个列表:
lst = [pd.DataFrame()]
del lst
我也看到了这个问题:如何释放Pandas DataFrame使用的内存? 有不同的答案,例如:
import gc
del df_1
gc.collect()
或者
在数据框的末尾使用
df = ""
还有更好的方法来实现吗?