Я знаю, что Memors Error является распространенной ошибкой при использовании различных функций библиотеки Pandas. Я хочу получить помощь в нескольких областях. Мои вопросы сформулированы ниже, после описания проблемы.
Моя ОС - Ubuntu 18, рабочее пространство - ноутбук Jupyter в рамках Anaconda, объем оперативной памяти 8 ГБ.
Задача, которую я решить.
У меня более 100 000 словарей, содержащих данные о посещениях сайта пользователями, например:
{'meduza.io': 2, 'google.com' : 4, 'oracle .com': 2, 'mail.google.com': 1, 'yandex.ru': 1, 'user_id': 3}
Необходимо сформировать DataFrame из этих данных. Сначала я использовал функцию добавления для добавления словарей построчно в DataFrame.
for i in tqdm_notebook(data):
real_data = real_data.append([i], ignore_index=True)
Но набор игрушечных данных показал, что выполнение этой функции занимает много времени. Затем я непосредственно попытался создать DataFrame, передав массив со словарями, подобными этому.
real_data = pd.DataFrame(data=data, dtype='int')
Преобразование небольшого объема данных достаточно быстрое. Но когда я передаю полный набор данных в функцию, появляется ошибка памяти. , Я отслеживаю потребление оперативной памяти. Функция не запускает выполнение и не тратит память. Я пытался расширить файл подкачки. Но это не сработало, функция не получает к нему доступ.
Я понимаю, что для решения своей конкретной проблемы я могу разбить данные на части, а затем объединить их. Но я не уверен, что знаю наиболее эффективный способ решения этой проблемы.
Я хочу понять, как рассчитывается необходимый объем памяти для работы Pandas работает. Судя по количеству вопросов по этой теме c, при чтении, объединении и т. Д. c возникает ошибка памяти. Можно ли включить файл подкачки для решения этой проблемы?
Как эффективнее реализовать решение проблемы с добавлением словарей в DataFrame? «Добавить» не работает эффективно. Создание DataFrame из полного набора данных более эффективно, но приводит к ошибке. Я не понимаю реализацию этих процессов, но я хочу выяснить, какой самый эффективный способ преобразования данных, как моя задача.