2016-11-16 16 views
0

私は約4000,0000行と3列のCSVを持っています。私はPythonを読み込み、これらのデータを使ってデータフレームを作成したいと思います。私はいつもメモリエラーがあります。巨大なcsvを読んでデータフレームを作成する

df = pd.concat([chunk for chunk in pd.read_csv(cmct_0430x.csv',chunksize=1000)]) 

私も、発電機からのcreat pandas DataFrameを試しましたが、まだメモリエラーがあります。

for line in open("cmct_0430x.csv"): 
     yield line 

私のコンピュータは、どのように私はこの問題を解決することができwin64,8G

のですか?どうもありがとうございました。

+0

と回答しましたが、サイズはOKです。 とサイズがメモリ容量を超えている場合 - データフレームを格納することが不可能であるため、メモリ内に自己が存在します。 ファイルのフォーマットにいくつかの問題があると思います。たとえば、デフォルト以外のエンコーディング(asciiまたはutf8)でファイルを読み取ると、同様のエラーメッセージが表示されることがあります。 –

+0

ファイルの小さいバージョンで問題なく動作しますか?全体をDataframeにロードすることができたとしても、フレームを扱う十分なスペースがない可能性があります。 – hpaulj

+0

それは小さいfile.yesで動作します、私はそれを扱う十分な余裕がないかもしれないと思います。 – lemon

答えて

1

df = pd.read_csv('cmct_0430x.csv')

4000万行が問題になることはありません。これは

+0

CParserError:データをトークン化する際のエラー。 Cエラー:メモリ不足 – lemon

1

を動作しない場合

あなたのエラーメッセージを投稿してくださいあなたが実際にチャンクモードでcsvファイルを読みますが、RAM内の1つのデータフレームにそれらを合併しました。だから問題はまだ残っています。データを複数のフレームに分割し、それらを別々に処理することができます。

reader = pd.read_csv(file_name, chunksize=chunk_size, iterator=True) 

while True: 
    try: 
     df = reader.get_chunk(chunk_size) 
     # work on df 
    except: 
     break 
    del df 
関連する問題