【问题标题】:Loading csv file in chunks [duplicate]分块加载csv文件[重复]
【发布时间】:2019-04-29 23:52:53
【问题描述】:

我有 2.5 GB 的 data set,其中包含数千万行

我正在尝试加载类似的数据

 %%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)

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

【问题讨论】:

  • 你需要遍历迭代器。 for i in data 并执行操作。

标签: python pandas


【解决方案1】:

来自参数chunksize的文档:

返回 TextFileReader 对象进行迭代

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

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

【讨论】:

  • 你能在块上添加一些进程,以便我得到参考。
  • 好吧@Mahesh,chunk 是一个数据框,因此您可以直接在其上执行您想到的任何过程。
猜你喜欢
  • 1970-01-01
  • 2017-10-01
  • 1970-01-01
  • 2019-06-18
  • 2013-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
相关资源
最近更新 更多