短い質問
Pandas が HDFStore (例: .mean() または .apply() ) で動作する場合、メモリ内の完全なデータを DataFrame としてロードしますか?それともレコードごとに Serie として処理しますか?
長い説明
大きなデータ ファイルを扱う必要があり、データ ファイルの出力形式を指定できます。
Pandas を使用してデータを処理するつもりであり、パフォーマンスを最大化するために最適な形式を設定したいと考えています。
panda.read_table() が長い道のりを歩んできたことを見てきましたが、DataFrame に変換するために読みたい元のファイル サイズと少なくとも同じ量のメモリ (実際には少なくとも 2 倍のメモリ) を必要とします。 . これは最大 1 GB のファイルで機能する可能性がありますが、それ以上ですか? 特にオンライン共有マシンでは、それは難しいかもしれません。
ただし、Pandas が pytables を使用して HDF テーブルをサポートしているように見えることがわかりました。
私の質問は、HDF テーブル全体で操作を行うときに、Pandas はどのようにメモリを管理するのでしょうか? たとえば、.mean() または .apply() です。最初にテーブル全体を DataFrame にロードしますか、それともメモリに保存せずに HDF ファイルから直接データに対して関数を処理しますか?
副次的な質問: hdf5 形式はディスク使用量がコンパクトですか? つまり、xml のように詳細なのか、それとも JSON のように詳細なのか? (インデックスなどがあることは知っていますが、ここではデータの裸の説明に興味があります)