データフレーム内で読み込む必要がある680 MBの大きなcsvファイルがあります。Pythonでデータフレームを連結する際にメモリエラーが発生する
私はファイルをチャンクに分割し、それらのチャンクをリストに追加します。
次に、私はpd.concat()を使用して統合データフレームを作成しようとしています。
私はこれを達成するために、コードの下に使用しています:
temp_list = []
chunksize = 10 ** 5
for chunk in pd.read_csv('./data/properties_2016.csv', chunksize=chunksize, low_memory=False):
temp_list.append(chunk)
properties_df = temp_list[0]
for df in temp_list[1:]:
properties_df = pd.concat([properties_df, df], ignore_index=True)
私はドッキングウィンドウのイメージを実行することにより、これを行うにしようとしています。
私はメモリエラーの下に取得しています:
Traceback (most recent call last):
File "dataIngestion.py", line 53, in <module>
properties_df = pd.concat([properties_df, df], ignore_index=True)
File "/usr/local/lib/python3.6/site-packages/pandas/core/reshape/concat.py", line 206, in concat
copy=copy)
File "/usr/local/lib/python3.6/site-packages/pandas/core/reshape/concat.py", line 266, in __init__
obj._consolidate(inplace=True)
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 3156, in _consolidate
self._consolidate_inplace()
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 3138, in _consolidate_inplace
self._protect_consolidate(f)
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 3127, in _protect_consolidate
result = f()
File "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py", line 3136, in f
self._data = self._data.consolidate()
File "/usr/local/lib/python3.6/site-packages/pandas/core/internals.py", line 3573, in consolidate
bm._consolidate_inplace()
File "/usr/local/lib/python3.6/site-packages/pandas/core/internals.py", line 3578, in _consolidate_inplace
self.blocks = tuple(_consolidate(self.blocks))
File "/usr/local/lib/python3.6/site-packages/pandas/core/internals.py", line 4525, in _consolidate
_can_consolidate=_can_consolidate)
File "/usr/local/lib/python3.6/site-packages/pandas/core/internals.py", line 4548, in _merge_blocks
new_values = new_values[argsort]
MemoryError
ここで助けてください!
チャンクを使わずにcsv全体を読もうとしましたか? 680 MBは、パンダのread_csvを使用して読むにはそれほど大きな音ではありません。 – otayeby
うん、私はそれを試みたが、プロセスは '殺されていた' –