私はcsvを読むためにパンダを使用しています。パンダメモリエラーwhile pd.concat
df_from_each_file = (pd.read_csv(StringIO(f)), compression='gzip', dtype=str) for f in all_files)
final_df = pd.concat(df_from_each_file, ignore_index=True)
各ファイルのサイズは小さくても、all_filesの合計行は約90,000,000です。
pd.concatが実行されている場合、Memory Error
を挙げて失敗しています。
システムには16GBのRAMと16個のCPUの2GHZがあります。ここにはメモリが不足していますか? は私がMemoryErrorを削除するために行うことができます何かはありますか?
私はchunksizeなどについて読んでいますが、それぞれのファイルは小さく、問題ではありません。どのようにconcat
をmemoryerrorできますか?
これはトレースバックです。 1つのファイルの
final_df = pd.concat(df_from_each_file, ignore_index=True)
File "/home/jenkins/fsroot/workspace/ric-dev-sim-2/VENV/lib/python2.7/site-packages/pandas/tools/merge.py", line 1326, in concat
return op.get_result()
File "/home/jenkins/fsroot/workspace/ric-dev-sim-2/VENV/lib/python2.7/site-packages/pandas/tools/merge.py", line 1517, in get_result
copy=self.copy)
File "/home/jenkins/fsroot/workspace/ric-dev-sim-2/VENV/lib/python2.7/site-packages/pandas/core/internals.py", line 4797, in concatenate_block_managers
placement=placement) for placement, join_units in concat_plan]
File "/home/jenkins/fsroot/workspace/ric-dev-sim-2/VENV/lib/python2.7/site-packages/pandas/core/internals.py", line 4902, in concatenate_join_units
concat_values = _concat._concat_compat(to_concat, axis=concat_axis)
File "/home/jenkins/fsroot/workspace/ric-dev-sim-2/VENV/lib/python2.7/site-packages/pandas/types/concat.py", line 165, in _concat_compat
return np.concatenate(to_concat, axis=axis)
MemoryError
df.infoは
dtype: object<class 'pandas.core.frame.DataFrame'>
RangeIndex: 12516 entries, 0 to 12515
Columns: 322 entries, #RIC to Reuters Classification Scheme.1
dtypes: object(322)
memory usage: 30.7+ MB
None
@WesMcKinney任意の提案??????? – vks
いくつの列がありますか?私が約3,800万行のデータフレームと約50個のカラムをメモリに持っていると、私のRAMは32GB以上になります。私は64ギガバイトを持っていると私はどんな試みたマージにメモリが不足すると思いますので、私は、このデータフレーム上で動作する任意のマージ操作を行うことはできません。 – Khris
ああ、9000万ではない。私はあなたの変わった桁の「90,00,000」を混乱させました。 – Khris