如何使用 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 许可协议

阅读 357
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 许可协议

推荐问题