Странное поведение (недостаточно памяти) функции groupby в PythonPython

Программы на Python
Anonymous
Странное поведение (недостаточно памяти) функции groupby в Python

Сообщение Anonymous »

У меня есть длинный код, который в какой-то момент имеет очень маленький фрейм данных с 813 строками и 16 столбцами.
К этому фрейму данных я применяю функцию groupby

Код: Выделить всё

fm = fm.groupby(['Tower_ID'                 ,'Cell_ID'                 ,'Alarm ID'                 ,'Severity'                 ,'Alarm Type'                 ,'Alarm Text'                 ,'Supplementary Info'                 ,'PERIOD_START_TIME'                 #,'File_Name'                ]
).agg({'Full_Start_Date': 'min'
,'Full_End_Date': 'max'
,'Alarm hold time (sec)': 'sum'
,'End_Date': 'max'
,'Cross_Over': 'max'
,'Cross_Over_diff': 'max'
}
)
Это приводит к ошибке нехватки памяти
numpy.core._Exceptions._ArrayMemoryError: невозможно выделить 11,1 ГиБ для массива с формой (1485993600) и типом данных int64
Вещи, которые я пробовал.
1 — Вместо fm = fm я использовал другую переменную, например бананы = fm.groupby ..... тот же результат
2 - Пробовал менять форматы столбцов на нужный мне тип, категорию, int и т. д. Результат тот же
Что сработало
Перед группировкой я сохраняю кадр данных FM в файл, а затем читаю файл обратно в FM

Код: Выделить всё

fm.to_excel('C:\\home\\fm_data.xlsx')
fm = pd.read_excel('C:\\home\\fm_data.xlsx')
И это работает!!!
Может ли кто-нибудь понять, почему?
Это очень-очень плохое решение, и я бы хочу понять, в чем может быть проблема.
Благодарю за помощь.

Подробнее здесь: https://stackoverflow.com/questions/786 ... -in-python

Вернуться в «Python»