使用pandas加载已过滤的.tda文件的最简单方法是什么?

时间:2013-02-26 11:39:20

标签: python pandas large-files

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)

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

1 个答案:

答案 0 :(得分:1)

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

请参阅:http://pandas.pydata.org/pandas-docs/stable/io.html#iterating-through-files-chunk-by-chunk

  • 根据需要过滤块状框架
  • 将过滤后的内容附加到列表
  • 最后结束

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