繁体   English   中英

删除dataframe列时熊猫内存泄漏?

[英]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)

奇怪的是,它成功删除了不好的第一列-因此,我将旧数据帧和新数据帧同时保存在内存中并且空间不足时,这不是问题。 它在被删除的第二列(MemoryError)上中断。 这使我怀疑存在某种内存泄漏。 如何防止发生此错误?

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

读取大数据框时,请使用usecols参数,以保留所需的列,而不是稍后将其删除。 在这里检查: http : //pandas.pydata.org/pandas-docs/dev/generated/pandas.io.parsers.read_csv.html

我尝试了inplace=True参数,但仍然遇到相同的问题。 这是处理由于您的体系结构导致的内存泄漏的另一种解决方案 当我遇到同样的问题时,这对我有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM