Pull to refresh

Аналитика алкогольной продукции сети магазинов «Лента»

Reading time4 min
Views7.7K

Сегодня вашему вниманию представлена аналитика (исследование) алкогольной продукции сети магазинов «Лента» (далее - Лента), находящаяся в каталоге на официальном сайте компании.

Планирование, подготовка, выборка

Почему выбор пал на алкогольную продукцию и на эту компанию? Да очень всё просто - первое, что пришло в голову (да, такое бывает) и большой ассортимент данного сегмента. Думаю в дальнейшем будет аналитика продукции других компаний. Но вернёмся к нашим бутылкам элементам исследования. Предварительно изучив структуру самого сайта компании приходим к выводу, что каталог продукции динамичен в зависимости от места расположения объекта продаж и изменением ассортимента. Выборку было решено взять по г. Москва, в гипермаркетах. Конечно же не обладая точными данными ассортимента алкогольной продукции компании нельзя сказать, что она репрезентативная, но всё же полагаем, что всё ок. Изучив количество единиц продукции в каталогах на сайте по точкам продаж получаем, что в среднем одинаково, вотЪ.

Инструменты для аналитики

Как любой себя уважающий senior data analyst джун в нашем исследовании мы будем применять стандартные инструменты для этого - язык программирования python 3+,  библиотеки pandas для анализа и обработки данных, библиотеки BeautifulSoup, request, csv, lxml для парсинга, библиотеки seaborn, matplotlib, plotly для визуализации результата, всё это находится в нашей любимой Anaconda, в которой JupyterLab и Jupyternotebook, плюс родные и добрые таблицы google sheets(возможно понадобятся) и конечно же не забудем про свой brain.

Получение данных для исследования

Данные мы будем получать конечно же с помощью нашего любимого автоматизированного процесса сбора данных (о как !) или более проще - парсинга (скрапинга). Парсинг будет осуществляться посредством скрипта на питОне (python). Для написания скрипта пришлось где-то почитать, где-то посмотреть, где-то «прихватить» (да простите меня товарищи). Код скрипта можно посмотреть тут.

Процесс парсинга

Итак, заходим на сайт подопытного объекта исследования и включаем в браузере режим разработчика, находим нужные нам классы и категории и прописываем (подставляем) их в коде. Кстати, у нас получилось 101 страница в каталоге. Запускаем процесс парсинга в Jupyter и ждём когда файл наполнится данными.

Процесс подготовки и обработки данных

Следующий шаг это открытие файла .csv в нашем сатурне джупИтире и краткая информация о самом датафрейме, для этого импортируем библиотеки, с запасом.

Как мы видим, у нас есть данные (числа) с пробелами. Поэтому, как завещал великий (ну почти) Карл Андерсон в своей книги “Аналитическая культура” нам нужны правильные данные, собранные правильным образом, в правильной форме, в правильном месте, в правильное время. Для этого применяем всю “мощь” библиотек в python для анализа. На самом деле основную работу сделал код скрипта парсинга, там был прописаны методы strip() и replace(), которые удалили лишние пробелы, переносы и символ рубля ₽.

Пробел в числах в поле price был идентифицирован как символ \xa0 - неразрывный пробел, элемент компьютерной кодировки текстов (подробнее тут). Далее с помощью метода replace() удаляем его и с помощью astype(float) меняем формат столбцов в float и у нас получается нормальный формат цены товара.

Процесс анализа данных

 Далее с помощью describe() узнаем краткие описательные статистики. Как мы видим среднее значение равное 986.78 руб. в цене без скидки, медиана равна 631.59 руб.

Построим гистограмму c помощью библиотеки matplotlib и увидим распределение, в параметрах прологарифмируем переменную. Как мы видим на гистограмме основная цена на алкогольную продукцию в пределах до 2400 руб, есть много выбросов.

Для углубленного анализа построим график boxplot от библиотеки plotly. Теперь мы видим, что подавляющее значение выбросов начинается от 2420 руб. А самым большим выбросом оказался коньяк Hennessy XO за 16209 руб. С помощью метода sort_value() узнаем пятерку самого дорогого алкоголя в Ленте.

Напомню, что цены и ассортимент динамичны, поэтому всё может изменяться каждый день.

Благодарю за внимание, всем всего наилучшего, ваш konstatic.

UPDATE :)

По просьбе трудящихся добавим сортировку по виду продукции. Обычным sort_values() из pandas не получилось c кириллицей, было принято решение заменить ключевые слова продукта на english чтобы выделять из общей массы( если есть другие варианты, то пишите ;).

Kод
def category(row):
    if 'Водка' in row ['product']:
        return 'vodka'
    elif 'Вино' in row ['product']:
        return 'wine'
    elif 'Пиво светлое' in row ['product']:
        return 'beer light'
    elif 'Напиток пивной' in row ['product']:
        return 'beer drink'
    elif 'Пиво темное' in row ['product']:
        return 'beer dark'
    elif 'Коньяк' in row ['product']:
        return 'cognac'
    elif 'Вино игристое' in row ['product']:
        return 'sparkling wine'
    elif 'Сидр' in row ['product']:
        return 'sparkling wine'
    elif 'cider' in row ['product']:
        return 'sparkling wine'
    elif 'Виски' in row ['product']:
        return 'whiskey'
    elif 'Шампанское' in row ['product']:
        return 'champagne'
    elif 'Джин' in row ['product']:
        return 'champagne'
    elif 'gin' in row ['product']:
        return 'champagne'
    elif 'Бальзам' in row ['product']:
        return 'tincture' 
    elif 'Ликер' in row ['product']:
        return 'liquor' 
    elif 'Ром' in row ['product']:
        return 'rum' 
    elif 'Бренди' in row ['product']:
        return 'brandy' 
    elif 'Напиток алкоольый' in row ['product']:
        return 'alcoholic beverage' 
    elif 'Напиток виноградный' in row ['product']:
        return 'grape drink'
    elif 'Слабоалкогольный напиток' in row ['product']:
        return 'slow-alcohol drink'
    elif 'Вермут' in row ['product']:
        return 'vermout'   
    elif 'Текила' in row ['product']:
        return 'tequila'
lenta['category'] = lenta.apply(category, axis=1)
lenta.category.value_counts()

И теперь применив value_counts() получаем подсчет по виду продукции. Подавляющее большинство вида алкогольной продукции это вино.

И котэ :)

Tags:
Hubs:
Total votes 15: ↑3 and ↓12-7
Comments8

Articles