我正在尝试使用以下代码读取中的13GB
csv
文件:
chunks=pd.read_csv('filename.csv',chunksize=10000000)
df=pd.DataFrame()
%time df=pd.concat(chunks, ignore_index=True)
我已经使用了从10**3到10**7的chunksize
参数值,但是每次我收到一个MemoryError
。csv
文件有大约330万行和1900列。你知道吗
我清楚地看到,在开始读取文件之前,我有30+GB的可用内存,但是我仍然得到MemoryError
。我该怎么解决这个问题?你知道吗
分块在您想读取文件中所有内容的情况下不起任何作用。
chunk
的全部目的是预处理块,这样您就只处理您感兴趣的数据(可能将处理过的块写入磁盘)。此外,您的块大小似乎大于数据中的行数,这意味着您正在一次性读取整个文件。你知道吗按照@MaxU的建议,可以尝试使用稀疏数据帧,也可以使用较小的块大小(例如100k):
您可能还想考虑像GraphLab Create这样的东西,它使用sframe(不受RAM限制)。你知道吗
相关问题 更多 >
编程相关推荐