我正在处理一个数据框,它占用大约 2 Gb 的内存(根据 htop),尺寸为 (6287475,19)。数据框的数据类型是异构的,这可能无关紧要。加载数据框后,我立即使用命令删除重复的行
df.drop_duplicates(inplace=True)
Run Code Online (Sandbox Code Playgroud)
在执行此命令期间,内存使用量跃升至约 7 Gb。命令完成后,内存减少到几乎 5 Gb,这是存储单个数据帧实例所需内存的两倍多。如果我然后删除del df
内存使用量减少到大约 3 Gb的数据帧。
如果我执行以下操作,行为是相同的:
df2 = df.drop_duplicates
del df
del df2
Run Code Online (Sandbox Code Playgroud)
gc.collect()
终止 python 会话后,运行什么也不做,内存使用率返回到其基线水平。这看起来像内存泄漏吗?有没有人见过类似的行为?
环境: