前提・実現したいこと
Pythonを利用したデータ分析をGoogle Colaboratory上でPython3で実施。巨大なdataframeを扱ったところ以下のエラーが出てしまう。解決方法が知りたい。
発生している問題・エラーメッセージ
以下のエラーメッセージが出てしまいます。
使用可能な RAM をすべて使用した後で、セッションがクラッシュしました。
扱っているデータですが、df.shape = (58327370, 41)です。
複数のテーブルをpd.merge()した結果、巨大なサイズになっています。
なお以下のコードを実行する直前において、Google Colaboratory上では25.51GBのメモリが割りあたっており、このうち13GB程度を利用している状態です。
該当のソースコード
上記の42列のdfにおいて、不要な列があったため削除しようとしたところ、前述のエラーが出てしまいました。
Python
1df = df.drop('column', axis=1)
試したこと
- 利用したい過去のdataframeの削除とメモリ解放
Python
1import gc 2del old_df #利用済みのdataframe 3gc.collect()
- dtypeの変更(int64->int16など)。効果が見えずいったん取り消し。
Python
1df = df.astype({'column1': 'int16', 'column2': 'float32'})
- 不要なcolumnの事前削除
できる限りは実施済み。(最後にdropしようとしているのは、直前でmergeのon句に使用したcolumn)
補足情報(FW/ツールのバージョンなど)
Google Colaboratory
Python 3
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/02 13:37