Анализ потребительской корзины с использованием Python для большого набора данных с миллионами строк

Я пытаюсь провести анализ рыночной корзины для очень большого набора данных, содержащего около 4800 уникальных продуктов и 2-3 миллиона строк. Я использую pyodbc для получения данных из базы данных сервера sql.

В конечном итоге у меня останется два столбца: номер счета-фактуры и номер продукта для обработки. Количество уникальных товаров в столбце продукта не равно примерно 4800, и это данные за 3 года для одного магазина. Я должен провести анализ для нескольких магазинов, около 10-12 магазинов, максимум 5 магазинов в одном наборе анализа.

Даже если я уменьшу данные до 1 года, это много.

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


person Aditi    schedule 26.02.2021    source источник
comment
Какие внешние пакеты вы используете? Вы можете взглянуть на pandas и numpy.   -  person areop-enap    schedule 26.02.2021
comment
Я пробовал с pandas, но для этого требуется около 2,5 ГБ места всего за 3 месяца данных 1 магазина с формой ~ (480000,2). Мне нужно свернуть исходные данные счетов, чтобы подготовить их к росту apriori/fp. Но тогда я также не уверен, что какой-либо из этих алгоритмов использует подмножество партиями.   -  person Aditi    schedule 27.02.2021
comment
Используя numpy, я попытался создать свою собственную вспомогательную функцию для получения данных в формате, который нужен этим алгоритмам, но затем у нее закончилась память, потому что в конечном итоге мне пришлось объединить ее с исходным фреймом данных. Поэтому я ищу эффективный метод и подход/алгоритм для анализа   -  person Aditi    schedule 27.02.2021


Ответы (1)


Вы должны очистить некоторые данные. Я решаю ту же проблему. Вы столкнетесь с одной серьезной проблемой, например. компания, в которой вы работаете, 7–11, а клиенты покупают только 1 товар. Это испортит ваши данные. Вы должны сгруппировать по номеру счета-фактуры и != 1... Я все еще решаю, как это сделать, но это многое прояснит для вас.

person da wa    schedule 08.03.2021
comment
Я это уже сделал, но еще нужно обработать много данных - person Aditi; 09.03.2021