背景:
优衣库(UNIQLO)是一家以销售服装为主的企业,成立于1984年,总部位于日本。
当年是一家销售西服的小服装店,现已成为国际知名服装品牌。优衣库仙人董事兼任总经理柳井正在日本首次引进了大卖场式的服装销售方式,通过独特的商品策划、开发和销售体系来实现店铺运作的低成本化,由此引发了优衣库的热卖潮。
优衣库(Uniqlo)的内在涵义是指通过摒弃了不必要装潢装饰的仓储型店铺,采用超市型的自助购物方式,以合理可信的价格提供顾客希望的商品价廉物美的休闲装“UNIQLO”是Unique Clothing Warehouse的缩写,意为消费者提供“低价良品、品质保证”的经营理念。在日本经济低迷时期取得了惊人的业绩。
数据集:链接:https://pan.baidu.com/s/1fsh3cABXj_p0pvvNp60yqg
提取码:640v
一、清洗数据
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False
导入数据
uniqlo = pd.read_csv('UNIQLO.csv')
#查看数据
uniqlo.head()
uniqlo.tail()
uniqlo.info()
uniqlo.describe()
从数据上看,发现销售收入有负值,需要对销售收入进行筛选
#看了描述统计,发现销售金额revenue有负数
uniqlo.revenue.value_counts()
uniqlo[uniqlo['revenue']<20].revenue.value_counts()
#由于销售收入和零收入存在较少,可以直接删除
uniqlo1 = uniqlo[uniqlo['revenue']>0]
uniqlo1.describe()
uniqlo1.head()
#利用公式法,我们观察每单顾客的总销售额为revenue,根据数量quant计算出单价产品销售金额
#unit_price = revenue/quant
#revenue_pc = revenue/customer
#margin_profit=unit_price-unit_cost
#profit=(unit_price-unit_cost)*quant
uniqlo1['unit_revenue']=uniqlo1['revenue']/uniqlo1['quant']
#每件产品单价
uniqlo1['revenue_pc']=uniqlo1['revenue']/uniqlo1['customer']
#客单价
uniqlo1['margin_profit']=(uniqlo1['unit_revenue']-uniqlo1['unit_cost'])
#利润
#uniqlo1['profit'] =(uniqlo1['unit_price']-uniqlo1['unit_cost'])*uniqlo1['quant']
uniqlo1.head()
二、UNIQLO整体销售情况随着时间变化情况
时间为wkd_ind时间维度,代表是weekday和weekend。可以从不同的收入revenue、顾客customer、销售数量quant、单价unit_revenue和利润margin_profit作比较。进行可视化展示
plt.figure(figsize=(10,8))
plt.style.use('ggplot')
uniqlo1.groupby('wkd_ind')['revenue'].sum().plot.bar()
plt.title('销售额随时间变化',fontsize=20)
#销售收入占比
data = uniqlo1.groupby('wkd_ind')['revenue'].sum()
plt.pie(data,
autopct='%.0f%%',
shadow = True,
textprops = {'fontsize':11},
explode = [0.08,0])
plt.axis('equal')
plt.legend(['Weekday','Weekend'])
plt.title('各个时间段销售额占比',fontsize=20)
plt.show()
plt.figure(figsize=(10,8))
sns.barplot(x='wkd_ind',y='customer',data=uniqlo1)
plt.title('各个时间客户总数量情况',fontsize=20)
#顾客随着时间的变化
#客单价随着时间的变化
plt.figure(figsize=(10,8))
sns.barplot(x='wkd_ind',y='unit_revenue',data=uniqlo1)
plt.title('各个时间单价比',fontsize=2
#各时间段利润及单价的情况
plt.figure(figsize=(10,8))
sns.barplot(x='wkd_ind',y='margin_profit',data=uniqlo1)
plt.title('各个时间段利润及单价情况',fontsize=20)
*从图表中可以看出销售额revenue在weekday收入较高,占了59%。
*大多顾客在周中weekday购买较多
*unit_revenue单价在周末比较高,说明周末价格比较高,导致周中比较多人前往购买
*利润也是在周末占的比较高
三、不同产品的销售情况是怎样的?顾客偏爱哪一种购买方式?
不同产品是指product与销售情况revenue的关系。 购买方式channel只有线上跟线下,客户可以根据不同性别、年龄阶段、城市三个维度进行分析
#查看不同产品销售情况描述统计
uniqlo1.groupby('product')['revenue'].describe()
#不同产品的销售情况可视化
sns.barplot(x='product',y='revenue',data=uniqlo1)
data1 = uniqlo1.groupby('product')['revenue'].sum()
plt.pie(data1,
labels=data1.index,
autopct='%.f%%',
shadow = True
)
plt.title('产品销量占比',fontsize=20)
plt.show()
data1 = uniqlo1.groupby('product')['margin_profit'].sum()
plt.pie(data1,
labels=data1.index,
autopct='%.f%%',
shadow = True
)
plt.title('产品利润占比',fontsize=20)
plt.show()
#顾客更偏爱那种购买方式
#不同性别
def way(a,b):
plt.figure(figsize=(12,8))
data2=uniqlo1[a].value_counts().index
sns.countplot(y=a,hue='channel',data=uniqlo1,order=data2)
plt.title(b,fontsize=20)
way('gender_group','不同性别偏爱购买方式')
#不同城市偏爱购买方式
way('city','不同城市偏爱的购买方式')
#不同年龄阶段偏爱的购买方式
way('age_group','不同年龄阶段偏爱的购买方式')
*从图中可以看出,大多数都是偏爱线下的购买方式
*女性购物多于男性
*深圳、武汉、、杭州这三个城市销量最大
*深圳跟杭州全是线下,没有线上消费
*年龄集中在30-34岁
四、销售额与产品成本之间的关系
sns.distplot(uniqlo1['margin_profit'])
#利用公式法,我们观察每单顾客的总销售额为revenue,根据数量quant计算出单价产品销售金额
#unit_price = revenue/quant
#revenue_pc = revenue/customer
#margin_profit=unit_price-unit_cost
#profit=(unit_price-unit_cost)*quant
#uniqlo1['unit_price']=uniqlo1['revenue']/uniqlo1['quant']
#每件产品单价
#uniqlo1['revenue_pc']=uniqlo1['revenue']/uniqlo1['customer']
#客单价
#uniqlo1['margin_profit']=(uniqlo1['unit_price']-uniqlo1['unit_cost'])
#利润
#uniqlo1['profit'] =(uniqlo1['unit_price']-uniqlo1['unit_cost'])*uniqlo1['quant']
#产品边际利润情况
def way1(c,d):
plt.figure(figsize=(12,8))
sns.boxplot(x='margin_profit',y=c,data=uniqlo1)
plt.title(d,fontsize=20)
way1('product','销售产品利润情况')
当季新品、牛仔裤、及运动为主要促销产品类别,线下门店可优化产品布局,将利润较高的新品及类别产品放置于促销产品附近,以此来提高购买率,线上门店可以优化优惠券金额及产品定价来增加捆绑销售;在高利润产品中,配件的市场需求不小,可适当增加库存来满足用户需求;而毛衣及裙子的销量占比较低,可通过促销及推广活动来提升销量,以此提升销售利润水平。
way1('city','城市利润分布情况')
way1('channel','销售渠道分布')
#查看产品成本与销售额的相关关系
uniqlo1[['unit_revenue','unit_cost']].corr()
sns.heatmap(uniqlo1[['unit_revenue','unit_cost']].corr())
uniqlo1[['revenue','unit_cost']].corr()
可以看出销售收入与成本相关性不大
sns.heatmap(uniqlo1[['revenue','unit_cost']].corr())
uniqlo1.groupby('city')[['unit_revenue','unit_cost']].corr()
sns.heatmap(uniqlo1.groupby('city')[['unit_revenue','unit_cost']].corr())