2

Pandas 有很好的.read_table()功能,但是大文件会导致 MemoryError。
由于我只需要加载满足特定条件的行,因此我正在寻找一种仅加载这些行的方法。

这可以使用临时文件来完成:

with open(hugeTdaFile) as huge:
    with open(hugeTdaFile + ".partial.tmp", "w") as tmp:
        tmp.write(huge.readline())  # the header line
        for line in huge:
            if SomeCondition(line):
                tmp.write(line)

t = pandas.read_table(tmp.name)

有没有办法避免这样使用临时文件?

4

1 回答 1

1

您可以使用 chunksize 参数返回一个迭代器

看到这个: http: //pandas.pydata.org/pandas-docs/stable/io.html#iterating-through-files-chunk-by-chunk

  • 根据需要过滤块帧
  • 将过滤后的内容附加到列表中
  • 连接在最后

(或者你可以将它们写到新的 csvs 或 HDFStores 或其他)

于 2013-02-26T16:18:51.177 回答