У меня есть (большой) фрейм данных из ~ 17 миллионов строк и 7 столбцов, которые я хочу транспонировать (сводить) на основе двух уникальных столбцов.Из-за ограничений памяти я не могу использовать функцию pandas.pivot_table
.Поэтому я попытался создать свой собственный фрагмент кода, который будет последовательно переносить этот фрейм данных.Код можно посмотреть по следующему адресу: https://bpaste.net/show/xRyQ
К сожалению, через некоторое время моя частота ошибок и количество обращений к странице начинаются все более резко.Более того, моя нестраничная память уходит в ноль.В настоящее время я не уверен, происходит ли это из-за утечки памяти, или это в основном из-за того, что мой «новый, развернутый кадр данных» увеличился в размере и, следовательно, потребляет память.
Поэтому мои два основных вопросаbe:
- Какова точная причина моих наблюдений?Это происходит из-за утечки памяти или из-за растущего размера фрейма данных?
- Какие изменения / улучшения я могу внести в мой код Python, чтобы исправить эти проблемы с памятью / ускорить решение?Например, можно ли разделить данные по библиотеке Dask?Я скорее ничего не изменяю в своих технических характеристиках.
Мои аппаратные характеристики:
- 16 ГБ ОЗУ
- 8 ядер ЦП, Intel i7-6700 (3,4 ГГц)
- Windows 7, 64 бита
Заранее спасибо, и, пожалуйста, дайте мне знать, если у вас есть дополнительные вопросы:)