drop_duplicates()期间和之后的内存使用情况

时间:2014-10-09 23:58:21

标签: python-2.7 pandas

我正在处理一个占用大约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()不执行任何操作并且内存使用率返回到其基准级别。这看起来像是内存泄漏吗?有没有人见过类似的行为?

环境:

  • 64位linux
  • python 2.7.7(64位)
  • pandas 0.14.1
  • numpy 1.8.2
  • Ipython 2.2.0(cpython的行为相同)

0 个答案:

没有答案