删除数据框列时 pandas 内存泄漏?

Memory leak in pandas when dropping dataframe column?

我有一些代码如下

df = ..... # load a very large dataframe
good_columns = set(['a','b',........]) # set of "good" columns we want to keep
columns = list(df.columns.values)
for col in columns:
   if col not in good_columns:
      df = df.drop(col, 1)

奇怪的是它成功地删除了第一列不好的列 - 所以这不是我同时在内存中保存新旧数据帧并且 运行 出来的问题space 个。它在第二列被删除时中断(MemoryError)。这让我怀疑存在某种内存泄漏。我将如何防止此错误发生?

可能是您不断返回一个新的非常大的数据框。 尝试将 drop inplace 参数设置为 True。

在读取大型数据框时使用 usecols 参数来保留您想要的列,而不是稍后删除它们。在这里查看:http://pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html

我尝试了 inplace=True 的说法,但仍然遇到同样的问题。 处理由于您的体系结构导致的内存泄漏。当我遇到同样的问题时,这对我有帮助