0

DataFrameMultiIndex (3 レベル) と約 900'000x4 のサイズでsortlevel(0,0) を実行しようとしています。

>>>data.as_matrix().shape
(899262, 4)
>>>data.sortlevel(0,0) #<--- throws MemoryError almost instantaneous

私は Windows Vista を実行しています (意図的にではありません)。私が理解しているように、プロセスは約 2GB の RAM しか割り当てることができませんが、.sortlevel が実際にその量の RAM をどのように使用できるかわかりません。ソートにはどのようなアルゴリズムが使用されますか? 同じ方法で並べ替えるための回避策はありますか?

編集古い習慣により、ipythonでのみテストしました。

4

3 に答える 3

1

ipythonでの使用run filename.pyに問題があるようです。何らかの理由で、コマンドプロンプトから通常のpythonよりも多くの RAM を使用しました。

于 2012-08-16T16:11:34.480 に答える
0

モジュールが IPython から実行されたときに、大きな DataFrame の並べ替えで同じ MemoryError 問題が発生しました。

64 ビット プロセッサ、オペレーティング システム、および 2 GB を超える RAM を使用している場合、別の解決策として 64 ビット Python を実行することです。Anaconda Community Editionなどの事前にパッケージ化された 64 ビット バージョンの Python を入手するか、非公式の 64 バイナリを入手できます。

于 2012-11-26T16:07:45.170 に答える
0

MultiIndex に関しては、pandas がメモリ使用量についてそれほど注意を払っていない場所がいくつかあります。問題を再現するケースを見つけた場合は、Issue Tracker に投稿してください。

于 2012-09-09T21:11:52.593 に答える