2016-11-09 10 views
2

私は8ギガバイトとUbuntuのラップトップは、2 GBのCSVファイルを持っていますが、私は7ギガバイトの空きRAMがあった一方で、ラムが完全に満たされている私のデータをロードするためにパンダ方法read_csvを使用する場合も.ANDラム持っています。 2 GBファイルはどのように7 GBのRAMを満たしますか? chunksizeパラメータを利用するようにcsvファイルの読み込み中にメモリエラーが発生しましたか?

+1

あなたの質問に同行するためにコードを貼り付けすることはできますか? –

+0

これらのSOスレッド多分便利http://stackoverflow.com/questions/19590966/memory-error-with-large-data-sets-for-pandas-concat-and-numpy-append http://stackoverflow.com/questions/17557074 /メモリエラー時に、使用して-パンダ読み-CSV – Bharath

答えて

0

あなたが推測すると、列ごとにdtypesので、このlow_memory警告があるかもしれない得る理由は厳しい非常にメモリです。 Pandasは、各列のデータを分析することで、設定するdtypeを決定しようとします。 32ビット・システムを使用する場合には

:Windowsで32bit版を使用している場合 メモリエラーは、Pythonで多くのことを起こります。これは、32ビットプロセスではデフォルトで2GBのメモリしか使用できないためです。

これを試してみてください:

tp = pd.read_csv('file_name.csv', header=None, chunksize=1000) 
df = pd.concat(tp, ignore_index=True) 
+0

はい.itはdtypesであったため、ロード中にdtypeの列を変換しました。ありがとう。これが助けになったら、 –

+0

親切にupvoteして答えを受け入れてください。 – harshil9968

+0

私はupvoteしようとしましたが、私は15未満の評判を持っているために公に表示されません;) –

0

試してみてください。

df = pd.concat((chunk for chunk in pd.read_csv('/path/to/file.csv', chunksize=10**4)), 
       ignore_index=True) 
+0

最初は恐ろしく非効率的であるメモを追加:http://pandas.pydata.org/pandas-docs/stable/merging.html – Jeff

+0

@Jeff、感謝君は!私はそれを削除しました。私はノートについてそれを得ていませんでした... – MaxU

+1

あなたはすべてのループ反復を作成していました。代わりにリストに追加してconcatを一度呼び出します(現在の例のように) – Jeff

関連する問題