Я обожаю краситься и делать специфичные штуки на разные мероприятия!
Поэтому в качестве базы данных для проекта я поискала что-то, связанное с косметикой. Анализ помог посмотреть на бьюит-индустрию с другой точки зрения, а именно коммерция и химические составляющие.
Для оформления я взяла цвета, которые лично у меня больше всего ассоциируются с этой сферой — все яркое! И чуть-чуть девчачье.
Для исследования я брала данные с сайта Kaggle, искала их по ключевому слову Cosmetic. Датасеты содержат информацию о типах и категориях косметики, о различных брендах и крупных компаниях, о составе отдельных продуктах и их цене.
Данные представлены в виде гистограмм, так как категориальный тип данных понятнее всего воспринимается именно в такой форме. А еще полосочки напоминают мне следы от помады и других продуктов, когда тестируешь их на руке в магазине)
Обработка данных
В коде я импортировала несколько библиотек:
а) чтобы задать оформление проекту import matplotlib.pyplot as plt
б) чтобы прочитать файлик import pandas as pd from google.colab import drive
Визуал
Сначала я анализирую именно компании — у кого больше и меньше выпущенных товаров (суммарно со всех брендов, которыми они владеют).

df['CompanyName'].value_counts().head(10).plot(kind='barh', color='#A8FBFF') plt.title('Топ-10 крупных компаний, у кого больше всего продукции') plt.xticks(rotation=45) plt.show()
df['CompanyName'].value_counts().nsmallest(10).plot(kind='barh', color='#A8FBFF') plt.title('Топ-10 компаний c минимальным количеством продукции') plt.xticks(rotation=45) plt.show()
Потом по тому же принципу именно бренды от этих компаний.
df['BrandName'].value_counts().head(10).plot(kind='barh', color='#A8FBFF') plt.title('Топ-10 брендов, у кого больше всего продукции') plt.xticks(rotation=45) plt.show()
df['BrandName'].value_counts().nsmallest(10).plot(kind='barh', color='#A8FBFF') plt.title('Топ-10 брендов, у кого меньше всего продукции') plt.xticks(rotation=45) plt.show()
После анализа количества компаний и брендов я перешла к точечной продукции (какие есть категории и так далее).
df['PrimaryCategory'].value_counts().plot(kind='barh', color='#A8FBFF') plt.title('Количество продуктов по категориям') plt.xticks(rotation=45) plt.show()
df.nlargest(10, 'Price')[['Name', 'Price']].plot.barh(x='Name', color='#A8FBFF') plt.title('Топ-10 самых дорогих продуктов') plt.xticks(rotation=45) plt.show()
df.nsmallest(10, 'Price')[['Name', 'Price']].plot.barh(x='Name', color='#A8FBFF') plt.title('Топ-10 самых дешевых продуктов') plt.xticks(rotation=45) plt.show()
Напоследок я выявила какие ингредиенты и отдельно химикаты чаще всего используются в производстве косметики.
pd.Series([ing for ings in df['Ingredients'].dropna() for ing in ings.lower().split(',')]).str.strip().value_counts().head(10).plot.barh(color='#A8FBFF') plt.title('Топ-10 ингредиентов') plt.show()
df['ChemicalName'].value_counts().head(10).plot(kind='barh', color='#A8FBFF') plt.title('Топ-10 самых частых химикатов') plt.xticks(rotation=45) plt.show()
skin_cols = ['Combination', 'Dry', 'Normal', 'Oily', 'Sensitive'] top10_brands = df['Brand'].value_counts().head(10).index pivot = df[df['Brand'].isin(top10_brands)].groupby('Brand')[skin_cols].sum() pivot.plot(kind='bar', figsize=(12,6)) plt.title('Топ-10 брендов по типам кожи') plt.ylabel('Количество продуктов') plt.xticks(rotation=45) plt.legend(title='Тип кожи') plt.tight_layout() plt.show()
Использование генеративных моделей




