Найти тему
Abracadabra

Удержаться и не использовать Excel

Дисклеймер: Все данные для данной статьи сымитированы искусственно

python vs excel by ai.
python vs excel by ai.

О чем заметка?

О том, как можно смотреть на рабочие задачи под другим углом и использовать их для развития навыков. В моем случаи это работа с библиотекой plotly и dash.
С их помощью можно строить интерактивные графики и собирать это все в дашборд. Если выложить даш в интернет, им можно поделиться с коллегами или использовать для презентации своей работы.
Как раз такую задачу мне надо было сделать.

Вступление.

Я работаю бизнес аналитиком в ДНС. Наша команда занимается распределением товаров. Появилась задача исследовать возможность применения коэффициентов сезонности в наших расчётах, в разрезе территорий. Как коэффициент, посчитанный нами, будет отличаться от территории к территории.

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

Что нужно было сделать?

В базе данных хранятся коэффициенты, для каждой территории и группы товаров свой, на каждый день в году. Выглядит это все примерно вот так:

Пример данных
Пример данных

Нужно было взять эту таблицу и сравнить поведение коэффициентов для одной группы товаров на разных территориях. Удобней это делать с помощью графика. Построить линейный график с разбивкой по территориям и наглядно посмотреть, где графики расходятся сильно.

Тут то excel и мог бы вступить в игру. Но есть несколько нюансов. Файл довольно большой - 2 миллиона строк. Мне не нравится excel. Мне проще открыть юпитер ноутбук и нарисовать нужный график, используя python. Но в данном случаи нужна была интерактивность. Сразу было очевидно, нужна возможность выбирать категории или убирать территории с графика.

Интерактивность + python = plotly. Идея попрактиковаться в написании дашбордов на python меня заинтересовала. Плюс дашборд можно разместить в сервере и поделиться с коллегами.

Что я сделал?

Загуглил. Plotly такая библиотека, которую не нужно знать наизусть, если ты с ней не работаешь постоянно. Я пользовался официальной документацией на plotly.com, где есть множества примеров. Выбирал какие примеры подходят для моего случая и копировал код. Пришлось немного разобраться как работает построение дашборда.
Мне нужна была линейная диаграмма, разбивкой по территориям. Что бы на одном графике наблюдать различия сезонных коэффициентов для разных территорий.

Пример графика
Пример графика

Возможность выбора категории. Коэффициенты разных категорий сравнивать не имеет смысла. Поэтому нужна возможность единичного выбора категории.

Возможность убрать из графика какие-то территории. Например, хотим сравнить дальний восток с коэффициентами все сети. Тут нужны были чек боксы и множественный выбор.

Пример чек боксов
Пример чек боксов

Что получилось?

В итоге у меня получилось ровно то, что мне нужно было для оценки поведения коэффициентов сезонности на разных территориях. Дашборд выглядит так:

Пример дашборда
Пример дашборда

Получилось быстро собрать нужный дашборд, который может обработать большой объем данных и имеет нужные фильтры.
Кстати, с помощью дашборда удалось отловить ошибка расчета коэффициента сезонности. Данные пересчитали и все что мне нужно было обновить дата сет.

Для того, что бы можно было поделиться дашбордом с коллегами его нужно было разместить в интернете или на сервере. Самый простой способ, что я нашел - pythonanywhere.com. Тут надо быть аккуратным с данными которые ты выкладываешь в интернет.

Для демонстрации результата, можно зайти сюда - borsin.pythonanywhere.com.
Как разместить свой дашборд на pythonanywhere можно посмотреть тут.

Как разместить свой дашборд на pythonanywhere можно посмотреть тут.

Итог.

От меня не требовалось сделать именно дашборд, можно было использовать и excel. Но если посмотреть на это как на возможность развить те навыки, которые ты хочешь развить, тогда ты получаешь решенную задача + "боевая" практика.
Кажется, важным и полезным искать такие возможности для развития полезных навыков. Так же, поиск таких возможностей развивает такой не осязаемый навык — смотреть на задачу и ее решения под разными углами.

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