Работа на большом количестве фреймов данных - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть большое количество данных pandas> 5000 значений формы 3000x3000 с плавающей запятой с плотностью 60% (то есть значения 40% - это NaN). Эти кадры имеют идентичный индекс и столбцы.

Я бы хотел работать с этими кадрами, например сложение всех из них. Если я делаю это последовательно, это занимает более 20 минут. Есть ли эффективный способ оперировать ими (например, суммировать их)?

Как я могу сделать эту память процесса эффективной, зная, что эти кадры данных не плотные?

1 Ответ

0 голосов
/ 17 апреля 2019

Если все ваши данные имеют одинаковую форму, то я не вижу смысла использовать для этого списки панд DataFrames.

Наибольшая производительность, которую вы можете получить из Python с наименьшими затратами, - это просто сложить кадры данных в трехмерный массив измерений Numpy (3000, 3000, 5000), а затем выполнить суммирование по последней оси.

Поскольку для этого требуется> 360 ГБ ОЗУ (по крайней мере, 180 ГБ для загруженных фреймов данных, 180 ГБ для стекового массива Numpy), это, вероятно, выходит за рамки обычной рабочей нагрузки рабочего стола, и вы можете воспользоваться инструментами для работы с большими данными, так как упоминается в комментариях.

...