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

  • 必要に応じてチャンク フレームをフィルタリングします
  • フィルタリングされたものをリストに追加する
  • 最後に連結

(あるいは、新しい csv や HDFStores などに書き出すこともできます)

于 2013-02-26T16:18:51.177 に答える