繁体   English   中英

Pandas - 导入大小为4GB的CSV文件时出现内存错误

[英]Pandas - memory error while importing a CSV file of size 4GB

我尝试使用pd.read_csv导入大小为4GB的csv文件,但收到内存不足错误。 然后尝试使用dask.dataframe ,但无法转换为pandas dataframe (相同的内存错误)。

import pandas as pd
import dask.dataframe as dd
df = dd.read_csv(#file)
df = df.compute()

然后尝试使用chunksize参数,但内存错误相同:

import pandas as pd
df = pd.read_csv(#file, chunksize=1000000, low_memory=False)
df = pd.concat(df)

还尝试使用带有列表的chunksize ,同样的错误:

import pandas as pd
list = []
for chunk in pd.read_csv(#file, chunksize=1000000, low_memory=False)
    list.append(chunk)
df = pd.concat(list)

尝试:

  1. 尝试文件大小1.5GB - 成功导入
  2. 尝试文件大小4GB - 失败(内存错误)
  3. 尝试使用低chunksize (2000或50000) - 失败(4GB文件的内存错误)

请告诉我如何进一步处理?

我使用python 3.7和RAM 8GB。

我还在一台RAM为128GB的服务器上尝试了尝试3,但仍然存在memory error

我无法分配dtype因为要导入的csv文件可以在不同的时间包含不同的列

这里已经回答: 如何阅读带有pandas的6 GB csv文件

我也尝试使用2GB文件的上述方法,它的工作原理。

还要尽量保持块大小更小。

您是否可以共享系统的配置,这将非常有用

我只是想在得到足够的建议后记录我尝试过的内容! 感谢Robin Nemeth和juanpa

  1. 正如juanpa指出的那样,当我使用64bit python可执行文件时,我能够在服务器中读取带有128GB RAM的csv文件(4GB)

  2. 正如Robin指出,即使使用64位可执行文件,我也无法在本地机器上读取带有8GB RAM的csv文件(4GB)。

因此,无论我们尝试什么,机器的RAM都与数据帧在内存中的使用一样重要

暂无
暂无

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

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