Jan 19, 2022
Поставлена аналитическая задача, проанализировать динамику продаж по выбранным контрагентам за определенный период в сравнении с предыдущим. Вроде бы всё просто, но есть нюанс. При выгрузке данных из корпоративной системы получается порядка 3,7 млн. строк. Кроме того, необходимо предоставить данные в специальном разрезе. Такой разбивки в системе нет. Необходимо воспользоваться несколькими вспомогательными классификаторами. Связать таблицы по полю артикул.
Привожу алгоритм обработки данных Python с помощью библиотеки Pandas:
- Импортируем библиотеки, настраиваем отображение таблиц.
- Загружаем данные.
- Сверка с данными других отчётов (например SQL), анализ в случае спорных моментов.
- Заполняем пустые поля для корректной агрегации данных.
- Загружаем классификатор номенклатуры.
- Объединяем отчёт с нужными полями классификатора.
- Загружаем вспомогательный классификатор.
- Объединяем крайний отчет и вспомогательный классификатор.
- Применяем conditions_companies когда нужно выбрать конкретные компании из всех.
- Заполняем пустые поля для корректной агрегации данных.
- Группируем данные для итогового отчёта.
- Вспомогательные вычисления для проверки.
- Выгружаем отчет.
Ноутбук для формирования отчёта (для публикации коммерческие данные удалены).
В итоге по каждой компании из списка агрегированы продажи за текущий и прошлый период в разрезе необходимых направлений. Для реализации был выбран инструмент Python Pandas из-за большого объёма данных. Естественно, что excel или access не потянут такое количество строк. Можно было попробовать и другие аналитические инструменты, но также нужно поддерживать навык написания кода. Поэтому, когда прилетают подобные задачи, стараюсь использовать Python. В течение последнего года провожу подобные вычисления несколько раз в квартал.