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

isa*_*ing 5 python-2.7 pandas

我正在处理一个数据框,它占用大约 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 会话后,运行什么也不做,内存使用率返回到其基线水平。这看起来像内存泄漏吗?有没有人见过类似的行为?

环境:

  • 64位Linux
  • 蟒蛇 2.7.7(64 位)
  • 熊猫 0.14.1
  • 麻木 1.8.2
  • Ipython 2.2.0(cpython 的行为相同)