2013-03-26 3 views
3

У меня довольно большой набор данных около 5287657 с примерно 15 столбцами. Я пытался создать сводную таблицу, и она дает мне MemoryErrorпри попытке создать DataFrame.
Ниже сообщение EROR я вижу:Python: ошибка памяти Pandas

File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 411, in __init__ 
    arrays, columns = _to_arrays(data, columns, dtype=dtype) 
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 5472, in _to_arrays 
    dtype=dtype) 
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 5500, in _list_to_arrays 
    coerce_float=coerce_float) 
File "C:\Python27\lib\site-packages\pandas\core\frame.py", line 5555, in _convert_object_array 
    for arr in content] 
File "inference.pyx", line 393, in pandas.lib.maybe_convert_objects (pandas\lib.c:32941) 
MemoryError 

Есть ли какие-либо ограничения на данные, которые мы можем манипулировать с помощью панд до возникновения ошибки памяти?

+0

Вам нужны все столбцы? Вы можете читать только те, которые вам нужны, с параметром 'usecols =' read_csv. – monkut

+0

@monkut: Мне нужны все столбцы, и на самом деле каждый столбец имеет 10 значений, поэтому технически у нас около 150 столбцов. – buggsbunny4

+0

Я просто смотрел этот разговор на днях, анализируя журнал журнала с помощью панд, и в нем он упоминает об отключении сбора мусора. Кажется немного сомнительным для меня, но это может вам помочь. http://pyvideo.org/video/1745/server-log-analysis-with-pandas-0 – monkut

ответ

0

Используйте read_csv, чтобы создать свои DataFrames, он был сильно оптимизирован для этой задачи.

+0

Когда я попытался использовать метод read_csv, программа сработает, и когда я увижу в журнале ошибок говорится, что ошибка находится в модуле синтаксического анализатора. Кроме того, я не уверен, могу ли я использовать метод read_csv, поскольку я читаю несколько файлов, и я поворачиваю данные на основе этих данных из всех файлов. Мои имена столбцов - это имена файлов. – buggsbunny4

+0

@ buggsbunny4, но вы рушитесь перед тем, как повернуть? На данный момент вы читаете в файлах в словаре преобразование (эти два шага - это неэффективный бит памяти), я предлагаю сначала создать список DataFrames (затем согласовать один df). –