我目前正在使用 Python 进行一个数据分析项目,需要处理大量数据集。虽然我使用 pandas 这个很棒的工具,但在对这些大型数据集执行操作时遇到内存问题。
具体来说,我正在处理几 GB 的 CSV 文件。当我尝试将这些文件读入 pandas DataFrame 或执行合并分组甚至简单聚合等操作时,我的系统内存不足。这正在成为我的项目的一个重要瓶颈。
优化 Pandas 的使用:
有没有办法优化 pandas 以更有效地处理大型数据集?例如,
read_csv
或其他函数中是否有特定参数可以减少内存使用?
我在工作中也遇到过这个问题。
我用来处理内存不足错误/处理大数据所消耗的时间的方法:
读入数据样本:将小随机样本读入 df
使用 Dask 库 - 专为处理更大的数据集而设计:Dask 与 Pandas 的比较。 Dask 示例
正如其他人评论的那样,您可以分块读取 csv,其中 chunksize 是 read_csv 方法中的参数:read_csv 文档。
我个人只用过第一种和第二种方法。第一种方法肯定有效,但如果您真的想使用所有数据,请尝试 Dask。