如果计算机内存不足,如何将 csv 文件加载到 [Pandas] 数据框中?

数据挖掘 熊猫 预处理
2022-02-10 19:05:54

我一直在尝试训练神经网络,但是当我用 Pandas 加载数据帧时,我的计算机总是耗尽 RAM 内存。它是一个 .csv 文件,大小为 7+ GB。

我想尝试一些原始批处理,但是为了进行一次热编码,我需要找到所有唯一值的数量,如果不先将数据加载到数据帧中,我就无法做到这一点。

是否有任何其他工具可用于尝试将文件加载到数据框中?Pyspark 是否也有开始崩溃的限制?我知道它能够将操作分解为多个阶段,这对 RAM 管理或执行有帮助吗?

1个回答

正如 pandas 的作者多次指出的那样,使用 pandas 进行分析的理想内存大小大约是您提供的数据负载的 5-10 倍。

话虽这么说,如果您能够负担得起加载数据是用于预处理的块并仅转储所需的列,我建议您pandas.read_table选择分段加载数据(检查选项chunks)。

pyspark正如你提到的那样可能很好。但是有dask一个是围绕python堆栈pandasnumpy分布式工作负载构建的,它支持pandas.DataFramenumpy.array. 但我从未关注任何成功在生产中使用它的人(或者至少提到他们已经使用过它)。可能这里的一些人可以证明这一点。sframe正如作者在他的一个演示文稿中所建议的那样,还有另一个库被称为从内存中加载数据它继续将数据序列化到磁盘上。

希望我总结得很好。