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