1. ホーム
  2. python

[解決済み] pandasの大規模かつ永続的なDataFrame

2023-01-23 16:05:34

質問

長年SASを使っていたため、pythonとpandasへの乗り換えを検討しています。

しかし、今日いくつかのテストを実行したとき、私はpythonがメモリ不足になったことに驚きました。 pandas.read_csv() 128mb の csv ファイルを試みたとき、python がメモリ不足になったことに驚きました。 それは、約 200,000 行と 200 列のほとんど数値データでした。

SAS では、csv ファイルを SAS データセットにインポートすることができ、それは私のハードドライブと同じ大きさにすることができます。

に類似したものはありますか? pandas ?

私は定期的に大きなファイルを扱う仕事をしていますが、分散コンピューティングネットワークにアクセスすることはできません。

どのように解決するのですか?

原理的にはメモリ不足になることはないはずですが、現在、メモリの問題があるのは read_csv でのメモリの問題があります (これは漠然としていますが、長い間知られていました。 http://github.com/pydata/pandas/issues/407 ).

今のところ、完璧な解決策はありません(面倒ですが、ファイルを行ごとに、あらかじめ割り当てられているNumPyの配列またはメモリマップドファイルに書き出すことができます)。 np.mmap ) ですが、これは私が近い将来取り組むことになるものです。もう一つの解決策は、ファイルを小さく分割して読み込むことです。 iterator=True, chunksize=1000 を使う)、そしてそれを pd.concat . 問題は、テキストファイル全体をメモリに一挙に取り込むときに発生します。