
Мой анализ затрагивает данные, относящиеся к экспорту и экономическому развитию ателье.
Меня мотивирует желание превратить данные из сухих отчетов в четкую стратегию. Я верю, что за каждым столбцом в таблице экспорта скрывается история: какие виды одежды оказываются самыми прибыльными и самыми популярными, как развивается экспорт товаров в творческой сфере, связанной с повседневной модой. Мне интересен процесс производства и какие параметры могут повлиять на выручку и другие критерии. Гипотеза: Анализ данных экспорта ателье позволит выявить ключевые драйверы прибыльности и популярности, что даст основу для формирования и понимания работы современного рынка.
Для визуализации данных я подобрала цветовую палитру с помощью Adobe Color и шрифт GreatVibes-Regular, утонченный, наклонный, рукописный, свойственный текстильным мастерам.


Работа началась с загрузки в Google Colab CSV-файла с данными и необходимого шрифта. После этого были импортированы библиотеки: Pandas для обработки данных, а также matplotlib.pyplot и seaborn для графиков matplotlib.font_manager для подключения шрифта.
Изучающие
Линейный график
В этом коде я выполнила анализ количества заказов по датам. Первым шагом я преобразовала столбец 'Date' в формат даты и времени (datetime), чтобы обеспечить правильную обработку данных. Для этого использовала функцию pd.to_datetime () с указанием формата даты 'день-месяц-год'. Затем сгруппировала данные по дате (игнорируя время), подсчитав количество заказов за каждую дату — с помощью метода groupby (), примененного к столбцу 'Date' с использованием .dt.date для получения только даты, и .size (), чтобы посчитать число заказов за каждую дату. Далее создала график, выбрав размер фигуры 10 на 6 дюймов и построили линию, отображающую динамику количества заказов во времени. Задала заголовок графика — «Количество заказов по датам», а также подписи для осей: «Дата» и «Количество заказов». В конце вызвала plt.show (), чтобы вывести финальный график с трендом
df['Date'] = pd.to_datetime (df['Date'], format='%d-%m-%Y')
orders_over_time = df.groupby (df['Date'].dt.date).size ()
plt.figure (figsize=(10,6)) orders_over_time.plot () plt.title ('Количество заказов по датам') plt.xlabel ('Дата') plt.ylabel ('Количество заказов') plt.show ()
Круговая диаграмма
Сначала я сгруппировала данные по типам изделий. Чтобы узнать, сколько заказов приходится на каждый тип, я использовала метод value_counts () для столбца 'GarmentType'. Затем я построила круговую диаграмму с помощью plot.pie (). В ней я указала названия типов в качестве меток, отобразила процентные доли каждого сегмента прямо на нём, а для наглядности повернула диаграмму так, чтобы она начиналась сверху (под углом 90 градусов). Чтобы сегменты выглядели чётко и аккуратно, я подобрала цветовую палитру и добавила к ним чёрные границы. После этого я добавила заголовок, который поясняет, что диаграмма показывает распределение заказов. Для более чистого вида я убрала стандартную подпись оси Y. В конце я вывела готовую диаграмму на экран командой plt.show ().
category_counts = df['GarmentType'].value_counts ()
plt.figure (figsize=(10,10)) category_counts.plot.pie ( labels=category_counts.index, autopct='%1.1f%%', startangle=90, cmap='tab20', wedgeprops={'edgecolor': 'black'} )
plt.title ('Распределение заказов по типам изделий') plt.ylabel ('') plt.show ()
Я подсчитала количество заказов для каждого типа изделия, сгруппировав данные по колонке 'GarmentType' с помощью метода value_counts (). Затем создала круговую диаграмму с помощью метода plot.pie ().
Столбчатый график
Сначала я посчитала количество заказов для каждого статуса с помощью метода value_counts () в столбце 'Status' нашего датафрейма df. Это дало мне полную картину того, сколько заказов сейчас в каком состоянии. Затем я создала новую фигуру для графика размером 8 на 6 дюймов и построила на ней столбчатую диаграмму. Чтобы каждый статус был хорошо различим, я раскрасила столбцы в разные цвета: голубой, светло-красный, светло-зелёный, оранжевый и фиолетовый. Я добавила заголовок, поясняющий, что мы видим распределение заказов по статусам, и подписала оси: «Статус заказа» по горизонтали и «Количество заказов» по вертикали. Для удобства чтения я повернула подписи статусов под углом 45 градусов. Чтобы визуально было проще оценивать высоту столбцов, я добавила на фон лёгкую пунктирную сетку по вертикальной оси. В конце, чтобы все элементы графика аккуратно разместились, я использовала tight_layout () и вывела готовый график на экран командой plt.show ().
import matplotlib.pyplot as plt
status_counts = df['Status'].value_counts ()
plt.figure (figsize=(8, 6)) status_counts.plot (kind='bar', color=['skyblue', 'lightcoral', 'lightgreen', 'orange', 'purple']) plt.title ('Распределение статусов заказов') plt.xlabel ('Статус заказа') plt.ylabel ('Количество заказов') plt.xticks (rotation=45, ha='right') plt.grid (axis='y', linestyle='--', alpha=0.7) plt.tight_layout () plt.show ()
В этом коде анализируется распределение заказов по различным статусам (например, «В обработке», «Доставлено», «Отменено» и т. д.). Это помогает оценить уровень отмен или задержек, а также выявить наиболее распространенные статусы в процессе обработки заказов.
Обучающий
График рассеивания
В этом коде я создала график для анализа взаимосвязи между длиной рукава (Arm Length) и ценой (Cost). Сначала я подготовила фигуру размером 8 на 6 дюймов. Затем построила диаграмму рассеяния (scatter plot), где по оси X отложила длину рукава, а по оси Y — цену. Я изменила прозрачность точек на 70% и добавила белые границы для лучшей видимости. После этого я добавила заголовок, который объясняет, что график показывает связь между длиной рукава и ценой, а также подписала оси. Затем я рассчитала линию тренда — линейную регрессию — с помощью функции np.polyfit, которая подбирает наилучшую прямую для данных. Я построила эту тенденционную линию на графике красным пунктиром и добавила легенду для её обозначения. Также я включила сетку по всему графику для удобства чтения и, наконец, отобразила построенный график командой plt.show ().
import matplotlib.pyplot as plt
plt.figure (figsize=(8, 6)) plt.scatter (df['Arm Length'], df['Cost'], alpha=0.7, edgecolors='w')
plt.title ('Взаимосвязь длины рукава и цены') plt.xlabel ('Длина рукава (Arm Length)') plt.ylabel ('Цена (Cost)')
import numpy as np z = np.polyfit (df['Arm Length'], df['Cost'], 1) p = np.poly1d (z) plt.plot (df['Arm Length'], p (df['Arm Length']), «r--», label='Трендовая линия') plt.legend ()
plt.grid (True) plt.show ()
Этот график помогает наглядно показать, существует ли какая-либо корреляция между длиной рукава и стоимостью заказа. Красная пунктирная линия представляет собой линию тренда, которая дает общее представление о том, как «стоимость» может меняться в зависимости от «длины руки».
Корреляция
В этом коде я выполняла анализ связки между типами изделий (GarmentType), ценами (Cost) и количеством покупок.
Сначала с помощью метода groupby () я сгруппировала данные по двум колонкам — 'GarmentType' и 'Cost' — и посчитала размер каждой группы (.size ()), получив количество покупок для каждой уникальной комбинации типа изделия и цены. Для удобства результаты я сохранила в датафрейм grouped, добавив колонку 'Count' с числом покупок.
После этого я подготовила данные для визуализации: выделила уникальные типы изделий (product_types), цены (prices), а также количество покупок (counts).
На графике я создала диаграмму рассеяния (scatter plot) так, чтобы по оси X откладывалась цена, по оси Y — виды изделий. Размер точек (s) пропорционален количеству покупок, умноженному на коэффициент для лучшей видимости. Цвет точек (c) — также зависит от количества покупок, и я применила цветовую карту 'viridis'.
Я добавила цветовую шкалу (colorbar), которая показывает соответствие между цветом и количеством покупок. Подписала оси — «Цена» по оси X и «Вид изделия» по оси Y. Назвала график так, чтобы было понятно, что он показывает анализ связки между ценой, видом изделия и количеством покупок.
Также я включила сетку для удобства восприятия и отобразила итоговый график командой plt.show ().
import matplotlib.pyplot as plt import numpy as np
grouped = df.groupby (['GarmentType', 'Cost']).size ().reset_index (name='Count')
product_types = grouped['GarmentType'].unique () prices = grouped['Cost'] counts = grouped['Count']
plt.figure (figsize=(12,8)) scatter = plt.scatter ( grouped['Cost'], grouped['GarmentType'], s=grouped['Count']*20, c=grouped['Count'], cmap='viridis', alpha=0.75, edgecolors='w' )
plt.colorbar (scatter, label='Количество покупок') plt.xlabel ('Цена') plt.ylabel ('Вид изделия') plt.title ('Анализ количества покупок в связке с ценой и видом изделия') plt.grid (True) plt.show ()
Этот график визуализирует взаимосвязь между тремя ключевыми переменными: стоимостью товара, его типом и количеством покупок. Ось X (cost): Эта ось представляет цену товара. Это непрерывная числовая шкала, позволяющая увидеть диапазон цен. Ось Y (Garment type): Эта ось перечисляет различные типы одежды (например, платье, пиджак, рубашка, костюм, брюки). Это категориальная ось, то есть каждая строка соответствует отдельному типу одежды. Отдельные точки: Каждая точка (или кружок) на графике представляет собой уникальную комбинацию типа одежды и стоимости, для которой была совершена хотя бы одна покупка. Более крупные точки указывают на большее количество покупок. Цвет точек: Параметр c управляет цветом каждой точки и также связан с количеством покупок (Count). Цветовая карта означает, что разные оттенки цвета (от желто-зеленого до фиолетово-синего) представляют разное количество покупок. Цветовая шкала справа помогает вам понять, какие цвета соответствуют какому количеству покупок. Вы можете получить следующую информацию: Популярные ценовые диапазоны: Можно определить какие ценовые диапазоны наиболее популярны для определенных типов одежды, по скоплениям больших, ярко окрашенных точек. Спрос на определенный тип одежды: Для данного типа одежды можно увидеть, продаются ли определенные ценовые диапазоны лучше, чем другие. Ценовая эластичность (качественная): по ней можно сделать вывод о том, значительно ли снижается или увеличивается спрос на определенный тип одежды при изменении цены.
Распределение заказов по типам изделий свидетельствует о том, какие виды продукции пользуются наибольшим спросом. Такие данные полезны для планирования производства и маркетинговых стратегий. Взаимосвязь между длиной рукава и ценой позволяет выявить тенденции и возможные корреляции: например, возможно, что более длинные рукава или определенные модели стоят дороже, что важно учитывать при ценообразовании. Анализ количества покупок в связке с ценой и видом изделия дает представление о том, какие ценовые диапазоны и виды изделий более популярны. Это помогает адаптировать ассортимент и ценообразование под предпочтения клиентов. Динамика заказов во времени показывает, в какие периоды наблюдается пик активности или спад. Эти данные полезны для оптимизации ресурсов и планирования маркетинговых мероприятий. В целом, проведенный анализ позволяет глубже понять поведение клиентов, оценки заказов и сезонные тенденции, что способствует более обоснованному принятию бизнес-решений и улучшению процессов.
Для консультации и выявления ошибок я использовала внутреннюю нейросеть Genmi (Google collab): https://colab.research.google.com Для помощи в написании кодов Chat GPT: https://trychatgpt.ru/chat/694a864a0591826b5f33e3d7 Для генерации изображений использовалась нейросеть krea.ai: https://www.krea.ai/app