В рамках данного проекта я выбрала для анализа набор данных о клиентах торгового центра, доступный на платформе Kaggle: Mall Customers Dataset. Этот набор данных включает в себя информацию о 2000 клиентах, их демографические характеристики, такие как возраст, пол, доход и баллы за покупки.
Интерес к анализу этих данных обусловлен их потенциальной ценностью для бизнеса, а также моей заинтересованностью в бизнесе и торговле. Сегментация клиентов позволит мне адаптировать свои бизнес-предложения, улучшая клиентский опыт. В условиях высокой конкуренции в ритейле такие знания могут дать значительное преимущество.
Для визуализации результатов анализа я планирую использовать различные виды графиков, для того, чтобы показать свои способности в создании графиков с помощью языков программирования. Например, мной были использованы гистограммы, столбчатые и круговые диаграммы.
Для анализа и визуализации данных для начала я:
Произвела импорт библиотек import pandas as pd import matplotlib.pyplot as plt import seaborn as sns
Загрузила данные data = pd.read_csv('Mall_Customers.csv.xls')
Проверила имеющуюся структуру и статистику данных. print(data.head()) print(data.describe()) print(data.info())
Удалила ненужные столбцы data.dropna(inplace=True)
После этого я начала анализировать данные
График распределения возрастов клиентов для понимания, люди какого возраста посещают магазины чаще всего:
plt.figure(figsize=(10, 6)) sns.histplot(data['Age'], bins=15, kde=True, color='skyblue') plt.title('Распределение возрастов клиентов', fontsize=16) plt.xlabel('Возраст', fontsize=14) plt.ylabel('Количество клиентов', fontsize=14) plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show()
Сравнение годового дохода людей по полу для понимания, кто из клиентов может чаще совершать дорогие покупки и тратить больше денег в магазинах.
plt.figure(figsize=(10, 6)) sns.boxplot(x='Genre', y='Annual Income (k$)', data=data, palette='Set2') plt.title('Сравнение годового дохода по полу', fontsize=16) plt.xlabel('Пол', fontsize=14) plt.ylabel('Годовой доход (в тысячах $)', fontsize=14) plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show()
Распределение баллов расходов по полу
plt.figure(figsize=(10, 6)) sns.countplot(x='Spending Score (1-100)', hue='Genre', data=data, palette='Pastel1') plt.title('Распределение баллов расходов по полу', fontsize=18) plt.xlabel('Баллы расходов (1-100)', fontsize=14) plt.ylabel('Количество клиентов', fontsize=14) plt.legend(title='Пол', fontsize=12) plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show()
Распределение возрастов по полу для понимания, какой пол преобладает среди посетителей каждого возраста.
plt.figure(figsize=(10, 6)) sns.histplot(data=data, x='Age', hue='Genre', bins=15, kde=True, palette='Set2', alpha=0.6) plt.title('Распределение возрастов по полу', fontsize=18) plt.xlabel('Возраст', fontsize=14) plt.ylabel('Количество клиентов', fontsize=14) plt.legend(title='Пол', fontsize=12) plt.grid(axis='y', linestyle='--', alpha=0.7) plt.show()
Круговая диаграмма по полу клиентов для понимания, люди какого пола посещают магазины чаще.
gender_counts = data['Genre'].value_counts() plt.figure(figsize=(8, 8)) plt.pie(gender_counts, labels=gender_counts.index, autopct='%1.1f%%', startangle=140, colors=['lightblue', 'salmon']) plt.title('Распределение клиентов по полу', fontsize=18) plt.axis('equal') plt.show()
Источники:
- запуск кода
https://colab.research.google.com/drive/1zhX-8x6jHqoxTN_j_oBawE2BcwUXwIP-?usp=sharing
- датасет
https://www.kaggle.com/datasets/shwetabh123/mall-customers?resource=download
- поиск датасета
https://www.kaggle.com
- генерация картинок
https://www.midjourney.com/home
промпты для картинок:
Flat illustration style images of a shopping mall full of people for a data analysis project
Flat illustration style images of a shopping bag full of clothes for a data analysis project
Flat illustration style images of a girl in a shopping mall for a data analysis project
Для всех картинок менялся их формат




