首页 > 解决方案 > 分块加载csv文件

问题描述

我有2.5 GB 的数据集,其中包含数千万行

我正在尝试加载数据,例如

 %%time
 import pandas as pd
 data=pd.read_csv('C:\\Users\\mahes_000\\Desktop\\yellow.csv',iterator=True,
                  chunksize=50000)

我得到多个 chunksize 部分的地方,我正在尝试做一些操作,比如

 %%time
 data.get_chunk().head(5)
 data.get_chunk().shape
 data.get_chunk().drop(['Rate_Code'],axis=1)

对于操作,它选择任何一个块大小部分并执行所有操作。那么剩下的部分呢?如何在没有内存错误的情况下对完整数据进行操作。

标签: pythonpandas

解决方案


从有关参数的文档中chunksize

返回 TextFileReader 对象进行迭代

因此,通过将对象置于循环中,您将迭代地读取以下指定的块中的数据chunksize

chunksize = 5e4
for chunk in pd.read_csv(filename, chunksize=chunksize):
    #print(chunk.head(5))
    #print(chunk.shape())

推荐阅读