Ошибка памяти с пандами при преобразовании dict в dataframe - PullRequest
0 голосов
/ 26 апреля 2018

У меня есть словарная переменная с размером почти 70K X 70K, я хочу преобразовать ее в Dataframe для дальнейшей работы с помощью

wd=pd.DataFrame(wordDict)

но через 5 минут работы выдает ошибку:

subarr=np.empty(len(),dtype=dtyp)
Memory Error

Я мог бы найти пост об этом, , но похоже, что это общая проблема с пандами и библиотекой Numpy, и, к сожалению, никто не мог дать конкретный ответ , в основном они советуют нарезать набор данных и подавать его в два или три шага.

просто я снова поднимаю эту проблему с надеждой, что, возможно, библиотека получит какие-то обновления для ее исправления или , может быть, есть какая-то техника , которую нужно преодолеть.

как завершение ; это ошибка? и есть ли альтернативное решение для преобразования словаря в dataframe спасибо

1 Ответ

0 голосов
/ 26 апреля 2018

Это не ошибка.

Массив размером 70k x 70k означает 4,9 миллиарда переменных, которые необходимо сохранить в кадре данных.

У фреймов данных есть издержки относительно таких объектов, как словари и списки. Таким образом, вам понадобится более чем вдвое памяти, используемой словарем для построения кадра данных.

Вам необходимо рассмотреть другой способ использования ваших данных. Некоторые примеры:

  • Используйте HDF5, чтобы лениво записывать данные в файл и затем читать из памяти.
  • Хранить данные в CSV-файле, написанном лениво, читать и фильтровать порциями, чтобы уменьшить потребление памяти.
  • Хранить данные в файле csv, написанном лениво, читать и фильтровать через dask.dataframe.

Вы не предоставили подробности в своем вопросе, чтобы мы могли дать дальнейшие рекомендации.

...