Original size 800x1200

Мини-анализ 44000 наименований одежды

PROTECT STATUS: not protected

Идея

post

Пришла мне аболютно закономерно: взяла то, что интересно (самая главная ценность во все времена), нашла по слову Fashion на предложенном Kaggle.com (https://www.kaggle.com/datasets/paramaggarwal/fashion-product-images-small) И задалась самыми простыми (но от этого не менее важными) вопросами: Что носят люди? Какой цвет носят люди? Чем одежда мужчин отличается от одежды женщин? Кого больше? Gucci/Louis Vuitton? Или победит массовость спорта? (Сам датасет не то чтобы про продажи, но, надо думать, если делают фото товаров, значит есть спрос?)

Что даст анализ и визуализация?

Мы проведём анализ и построим цепочку визуализаций: в первую очередь, это позволит выделить практические выводы, которые позволяют в общем оценить рынок (ровно в той мере, в которой он отражён в датасете), посмотреть на ситуацию как бы сверху. Это очень полезно, особенно в современном мире, где данные буквально повсюду, как оказалось.

Какие графики я использовала

  1. Круговая — хорошо видны пропорции от целого
  2. Столбчатая — хороша для топов и сравнения количества
  3. Линейчатая — аналог столбчатой, но удобнее когда много значений, которые становится трудно прочесть
  4. Тепловая карта — чудесно отображает связи элементов

Весь лонгрид было решено сделать в пастельных тонах, чтобы настроить читающего на спокойный и аналитический лад) Ну и потому что мне самой она нравится.

Как я обрабатывала данные

1. Загрузка и первичный осмотр данных.

Загрузила файл и просто посмотрела на него. Цель — понять общую суть данных и их вид. # загружаю csv файл с данными df = pd.read_csv('styles.csv', on_bad_lines='skip') print(f"Строк: {len(df)}") # смотрю как выглядят данные df.head()

2. Проверка пропусков и целостности данных.

Посмотрела на пропуски. # Проверяю пропущенные значения print("Пропущено:") print(df.isnull().sum())

Дальше пойдёт статистическая обработка данных.

Нейрорука

post

Приложена к генерации всех этих замечательных иллюстраций (Всё в chatGPT) https://chatgpt.com/ Промпт: действуй как хороший дизайнер, у меня есть идея: сделать презентацию в пастельных тонах, в ней я буду излагать своё мини-исследование про анализ данных одежды, визуально она должна быть лёгкой и приятной, в пастельной палитре, а ещё обложку нарисуй в таком же стиле, чтобы всё выглядело модно и органично

Также ChatGPT помог разобраться с методами статистики Промпт: действуй как ментор по анализу данных, скажи, какие статистические методы для этого используются, вглубь не лезь, я только начинаю разбираться в этой теме

Применённые статистические методы

  1. Дескриптивная статистика (mean/min/max и т. д.) # статистика по числовым столбцам df.describe () # Хочется увидеть и категориальные тоже (общее) df.describe (include="all») # Отдельно статистика: df.select_dtypes (include="number»).agg ([«min», «max», «mean»])

  2. Частотный анализ (сколько раз встречается значение) # смотрю распределения по основным категориям print («Сколько товаров для кого:») # Беру количество значений print (df['gender'].value_counts ()) print () print («Основные категории:») print (df['masterCategory'].value_counts ()) print () print («Самые популярные типы вещей:») print (df['articleType'].value_counts ().head (10))

  3. Анализ количества пропусков # Проверяю пропущенные значения print («Пропущено:») print (df.isnull ().sum ())

  4. Кросс-табуляция — в виде тепловой карты, показывает связи # создаю кросс-таблицу (теплокарту) crosstab = pd.crosstab (df['masterCategory'], df['gender'])

# рисую тепловую карту plt.figure (figsize=(10, 6), facecolor='#F5F0EB') sns.heatmap (crosstab, annot=True, fmt='d', cmap='YlOrBr', cbar_kws={'label': 'Количество'}, linewidths=1, linecolor='#F5F0EB')

plt.title ('Связь основных категорий и пола', fontsize=13, pad=15, color='#6B5D54') plt.tight_layout () plt.savefig ('graph3_heatmap.png', dpi=300, bbox_inches='tight', facecolor='#F5F0EB') plt.show ()

  1. Обработка текста — получила бренд из названия (по-простому: первое слово в названии) # создаю копию датасета только с непустыми названиями df_brands = df[df['productDisplayName'].notna ()].copy ()

# беру первое слово как бренд df_brands['brand'] = df_brands['productDisplayName'].str.split ().str[0]

# считаю топ брендов top_brands = df_brands['brand'].value_counts ().head (15)

Кто больше всех одевается?

Самый первый и фундаментальный вопрос. Рынок в виде сверху. Мужские товары занимают половину всего ассортимента (49.9! %). Женские на втором месте. Остальное — это унисекс вещи, детская одежда и товары для мальчиков/девочек отдельно. Честно говоря, я удивлена что мужских вещей так много! Обычно когда я хожу по магазинам, кажется что женских отделов всегда больше.

Original size 1926x2033

# Кто больше всех одевается? # считаю сколько товаров для каждого пола gender_counts = df['gender'].value_counts () # создаю фигуру с бежевым фоном plt.figure (figsize=(8, 8), facecolor='#F5F0EB') # выбираю цвета для круговой диаграммы — все в бежевой гамме (через Adobe Color) colors = ['D4C5B9', 'E8DDD3', 'C9B8A8', 'A89584'] # рисую круговую диаграмму (пирог) plt.pie (gender_counts, labels=gender_counts.index, autopct='%1.1f%%', colors=colors, startangle=90, textprops={'fontsize': 11}) plt.title ('Распределение товаров по полу', fontsize=14, pad=20, color='#6B5D54') # Сохраняю график в высоком качестве для лонгрида plt.savefig ('graph1_gender.png', dpi=300, bbox_inches='tight', facecolor='#F5F0EB') plt.show (

А цвет?

Черный и белый — это вообще вне конкуренции! Потому что это классика. Синий на третьем месте — тоже очень популярный цвет, особенно для джинсов и рубашек. Интересно что розовый довольно высоко в списке — наверное за счет женской одежды. Люди предпочитают нейтральные и базовые цвета. Яркие цвета есть, но их меньше.

Original size 2961x2370

# А цвет? # беру топ цветов по популярности top_colors = df['baseColour'].value_counts ().head (15) # создаю фигуру plt.figure (figsize=(10, 8), facecolor='#F5F0EB') ax = plt.gca () ax.set_facecolor ('FFFFFF') # белый фон для графика # тут горизонтальные столбцы plt.barh (range (len (top_colors)), top_colors.values, color='#C9B8A8', edgecolor='#8B7B6B', linewidth=1.5) # подписываю оси plt.yticks (range (len (top_colors)), top_colors.index, fontsize=10) plt.xlabel ('Количество товаров', fontsize=11, color='#6B5D54') plt.title ('Топ самых популярных цветов', fontsize=13, pad=15, color='#6B5D54') # сетку чтобы было легче читать plt.grid (axis='x', alpha=0.3, color='#D4C5B9') plt.tight_layout () # сохраняю plt.savefig ('graph2_colors.png', dpi=300, bbox_inches='tight', facecolor='#F5F0EB') plt.show ()

Кто что носит?

Одежда — самая большая категория и для мужчин и для женщин. Мужской одежды побольше. Аксессуары — у женщин их больше чем у мужчин. Это логично, женщины обычно больше внимания уделяют аксессуарам — сумки, украшения, шарфы. Расстроил малый выбор для детей, относительно взрослых, дети же тоже хотят и должны иметь выбор и красиво одеваться ( Интересно что категория унисекс не такая большая. Хотя сейчас много говорят про гендерно-нейтральную моду. Но данные староваты, наверно.

Original size 2846x1764

# Кто что носит? # создаю кросс-таблицу (теплокарту) — в ней видно связи между парой элементов crosstab = pd.crosstab (df['masterCategory'], df['gender'])

# рисую plt.figure (figsize=(10, 6), facecolor='#F5F0EB')

# использую мягкую палитру sns.heatmap (crosstab, annot=True, fmt='d', cmap='YlOrBr', cbar_kws={'label': 'Количество'}, linewidths=1, linecolor='#F5F0EB') # Обзываю plt.title ('Связь основных категорий и пола', fontsize=13, pad=15, color='#6B5D54') plt.tight_layout ()

# сохраняю и отображаю график plt.savefig ('graph3_heatmap.png', dpi=300, bbox_inches='tight', facecolor='#F5F0EB') plt.show ()

Во что больше всех одеваются?

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

Original size 2968x2366

# Во что больше всех одеваются? # сначала нужно достать бренды из названий товаров (просто первое слово) # создаю копию датафрейма только с непустыми названиями df_brands = df[df['productDisplayName'].notna ()].copy () # разбиваю название по пробелам и беру первое слово — обычно это бренд df_brands['brand'] = df_brands['productDisplayName'].str.split ().str[0] # считаю топ брендов top_brands = df_brands['brand'].value_counts ().head (15) # рисую график plt.figure (figsize=(10, 8), facecolor='#F5F0EB') ax = plt.gca () ax.set_facecolor ('#FFFFFF')

# горизонтальные столбцы plt.barh (range (len (top_brands)), top_brands.values, color='#D4C5B9', edgecolor='#8B7B6B', linewidth=1.5) # оси и названгие plt.yticks (range (len (top_brands)), top_brands.index, fontsize=10) plt.xlabel ('Количество товаров', fontsize=11, color='#6B5D54') plt.title ('Топ брендов по количеству товаров', fontsize=13, pad=15, color='#6B5D54') plt.grid (axis='x', alpha=0.3, color='#D4C5B9') plt.tight_layout ()

plt.savefig ('graph4_brands.png', dpi=300, bbox_inches='tight', facecolor='#F5F0EB') plt.show ()

Что носят больше всего?

Футболки — абсолютный лидер! Их аж больше 7000 штук. Ведь футболка это базовая вещь в любом гардеробе. На втором месте рубашки — около 3200 штук. Рубашки тоже очень универсальная вещь, можно носить и на работу, и на прогулку. На первом месте из неодёжного — повседневная обувь, а на втором — часы.

Все эти вещи базовые, достаточно интересно.

Original size 3571x1768

# Что носят больше всего? # считаю топ типов одежды top_articles = df['articleType'].value_counts ().head (10)

# создаю фигуру plt.figure (figsize=(12, 6), facecolor='#F5F0EB') ax = plt.gca () ax.set_facecolor ('#FFFFFF')

# обычная вертикальная столбчатая диаграмма plt.bar (range (len (top_articles)), top_articles.values, color='#B8A99A', edgecolor='#8B7B6B', linewidth=1.5)

# подписываю столбцы — поворачиваю названия под углом чтобы влезли plt.xticks (range (len (top_articles)), top_articles.index, rotation=45, ha='right', fontsize=10) plt.ylabel ('Количество', fontsize=11, color='#6B5D54') plt.title ('Топ самых популярных типов товаров', fontsize=13, pad=15, color='#6B5D54')

# сетка по горизонтали plt.grid (axis='y', alpha=0.3, color='#D4C5B9') plt.tight_layout ()

plt.savefig ('graph5_articles.png', dpi=300, bbox_inches='tight', facecolor='#F5F0EB') plt.show ()

В какой сезон больше всего одеваются?

Летние товары — это больше 20 тысяч штук! Это почти половина всего датасета. Очень большая разница с другими сезонами. Осени и зимы и весны примерно одинаково. Удивило, что весны так мало Возможно, летнюю одежду просто проще и дешевле производить, так как она тонкая и лёгкая

Original size 2971x1768

# В какой сезон больше всего одеваются? # считаю кол-во товаров для каждого сезона season_counts = df['season'].value_counts ()

# рисую график plt.figure (figsize=(10, 6), facecolor='#F5F0EB') ax = plt.gca () ax.set_facecolor ('#FFFFFF')

# столбчатая диаграмма plt.bar (season_counts.index, season_counts.values, color='#A89584', edgecolor='#8B7B6B', linewidth=1.5)

plt.ylabel ('Количество товаров', fontsize=11, color='#6B5D54') plt.title ('Распределение товаров по сезонам', fontsize=13, pad=15, color='#6B5D54') plt.grid (axis='y', alpha=0.3, color='#D4C5B9') plt.tight_layout ()

# сохраняю plt.savefig ('graph6_seasons.png', dpi=300, bbox_inches='tight', facecolor='#F5F0EB') plt.show ()

Самые интересные для меня выводы

По столь интересной и важной для меня работе

Бренды Спортивные гиганты прямо-таки доминируют на рынке, обгоняя high-fashion бренды. Всё таки победила простота и удобство.

Люди Имеют огромный ассортимент одежды летом, хотят одеваться легко, чувствовать себя свободно, выбирают спортивную одежду

Данные Могут рассказать очень много, даже о такой, как я думала сначала, не связанной с ними сфере.

Мини-анализ 44000 наименований одежды
Project created at 14.01.2026
We use cookies to improve the operation of the website and to enhance its usability. More detailed information on the use of cookies can be fo...
Show more