如何使用 Pandas 读取大型 csv 文件?

新手上路,请多包涵

我正在尝试在 pandas 中读取一个大的 csv 文件(大约 6 GB),但出现内存错误:

 MemoryError                               Traceback (most recent call last)
<ipython-input-58-67a72687871b> in <module>()
----> 1 data=pd.read_csv('aphro.csv',sep=';')

...

MemoryError:

有什么帮助吗?

原文由 Rajkumar Kumawat 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 358
1 个回答

该错误表明机器没有足够的内存来一次将整个 CSV 读入一个 DataFrame。假设您不需要一次将整个数据集全部存储在内存中,避免该问题的一种方法是 分块处理 CSV (通过指定 chunksize 参数):

 chunksize = 10 ** 6
for chunk in pd.read_csv(filename, chunksize=chunksize):
    process(chunk)

chunksize 参数指定每个块的行数。 (当然,最后一个块可能包含少于 chunksize 行。)


熊猫 >= 1.2

read_csvchunksize 返回一个上下文管理器,像这样使用:

 chunksize = 10 ** 6
with pd.read_csv(filename, chunksize=chunksize) as reader:
    for chunk in reader:
        process(chunk)

参见 GH38225

原文由 unutbu 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题