Kaggle案例-基于SQL的Black Friday数据分析

数据来源:kaggle https://www.kaggle.com/sdolezel/black-friday/download

使用工具:excel、SQL、navicat、tableau


目录

1背景介绍

2数据理解及分析维度

3数据处理

4数据分析及可视化

5数据结论


1 背景介绍

本次数据分析数据为黑色星期五样本数据,期望通过对其消费行为及动机的分析,为下一次黑色星期五活动提供有价值的建议和参考。

2 数据理解及定义问题

本数据包含537578条数据,涵盖以下12项。通过COUNTA函数找到各列行数,找到10、11列有大量空值。原数据各字段理解如下:

序号      字段           中文注释           含义            数据类型    数量

1          User_ID         用户ID     用户的唯一标识     string    537578

2         Product_ID      产品ID    产品的唯一标识     string    537578

3          Gender           性别         M男性/F女性         string    537578

4          Age                年龄         0-17/18-25/26-35/  string    537578

                                                36-45/46-50/51-55/55+  

5    Occupation           职业         使用编号0-20表示   integer 537578

6   City_Category    城市类别        A/B/C三类             string   537578

7 Stay_In_Current   当前城市     0/1/2/3/4+几类         string   537578

    _City_Years         居住年限

8   Marital_Status    婚姻状况      0表示未婚/1表示已婚  integer  537578

9  Product_Category_1  产品类别1  使用编号1-18表示  integer  537578

(同产品可能类别不同)

10Product_Category_2  产品类别2   使用编号1-18表示  integer  370592

11Product_Category_3  产品类别3   使用编号1-18表示   integer 164279

12Purchase        购买额对应产品的销售额,单位美元     integer  537578

通过对数据理解,明确数据分析的目的是提供较为精准的用户画像,以便于向用户提供更为精准垂直的营销服务。通过以下总体性指标如销售额等、目标用户画像、产品等几个维度拆解分析目标。


 黑色星期五数据分析维度

3 数据处理

 通过查看数据,发现在以下几个方面需要处理:

重复值: 通过菜单栏:数据/删除重复值选中所有字段,发现无重复值,不作处理


重复值

  缺失值:通过第二步数据理解中对问题的统计发现(标示处),序号10和序号11字段中存在大量缺失值,两个字段都是商品类别编号,缺失值未知,故不做处理

序号         字段               中文注释           数量

1          User_ID              用户ID            537578

2          Product_ID         产品ID            537578

3          Gender                性别               537578

4          Age                      年龄               537578

..........................................................

10Product_Category_2  产品类别2       370592

11Product_Category_3   产品类别3      164279

12Purchase                      购买额           537578

异常值:本数据的异常值表现在Stay_In_Current_City_Year一列中数据类型不一致,0、1、2、3等均为数据,而4+为文本类型,不利于数据的进一步分析,因此运用替换将4+替换为4


异常值

将修改后的数据另存为,然后导入navicat初步分析,导入时可将部分用不上的列不导入,部分列的数据格式要改变,数据类型integer要改为int2

4 数据分析

按照分析维度,确定基本查询语句,将结果导出后导入tableau进行数据分析,具体过程如下。

4-1总体指标

总销售额

思路:将Purchase列进行求和得到总销售额5017668378,具体代码如下


得到如下结果:


客单价

思路:由于一位顾客可能购买多件商品,User_ID存在大量重复值,运用DISTINCT去重后使用COUNT函数

件单价

思路:运用COUNT函数求出所有的商品件数,总销售额除以商品件数,就是件单价

2目标客户维度

性别、年龄、销售额

思路:运用CASE WHEN 将结果分类为男、女,分别作为两列

查询及可视化结果如下:

性别、年龄、婚姻状况、销售额

思路:此步骤为上一步的进一步分析,运用CASE WHEN将男女婚姻状况分别列出

职业

职业-性别-销售额

思路:将购买额最高的前十的职业查找出来,便于精确定位目标人群,通过与男性购买额前十和女性购买额前十进行比较,得到男女群体购买额较高的职业排名,以便在相应场所对黑色星期五活动进行宣传

职业-男性

职业-女性

思路:将三个查询结果内连接,得到男、女购买额均较高的职业排名

城市-性别-购买件数

城市-性别-购买额

城市-用户-单人消费额

思路:将累计销售额按照城市,用户维度进行分组,即得到每个城市的单人消费额,导入tableau进行分析得到以下结果

3 产品维度

产品-最畅销商品前50

结果如下:部分节选

产品-畅销品类

思路:产品品类1、产品品类2、产品品类3无论哪个等于相应的数字都为该数字的品类,因此用or

5 数据结论

总体指标

总销售额、客单价、件单价

此次黑色星期五活动,共有5891位顾客参与,购买了537577件商品,达成了5017668378的交易额,平均客单价和平均件单价分别为851751.549和9333.860。

目标客户维度

性别、年龄、销售额

从年龄、性别来看,各年龄段男性购买力均大于女性,普遍为女性消费额的2-3倍甚至更多,尤其是18-25、26-35、36-45年龄段的男性用户在黑色星期五中占据了大量消费份额。

性别、年龄、婚姻状况、销售额

通过进一步细分发现,在已婚人群中,各年龄段男性消费均大于已婚女性,且26-35岁的男性已婚在所有男性已婚群体中消费最高,而18-25岁的此类群体消费仅为前者的1/4,36-45岁以及之后的这一群体消费较26-35岁逐渐降低,根据常识,26-35岁的已婚男性开始逐渐成熟,承担起家庭义务。从中可推测男性群体消费偏高,可能并非出于自身的购买需求,而是为伴侣或者家庭其他成员购买物品,故背后真正的消费群体可能是已婚女性甚至其子女等。

职业-性别-销售额

从职业来看,男性和女性较喜欢在黑色星期五购物的职业群体有很大程度的重叠,上图所示的职业群体中,男性、女性均消费排名靠前,但男性购买力普遍超过女性,可在黑色星期五购物街前夕,该职业相应场所提前宣传为活动造势,提高购买数量和消费额。


同时从男女性购买职业排名来看,针对职业17的男性和职业6的女性,也可指定相应的个性化策略,为其推销适应该人群的特定商品和特定优惠,提高购买数量。

城市-性别-购买件数

城市-性别-购买额

无论从销售件数还是销售额,各群体均呈现出B>C>A的整体趋势,B/C两城市占据了大部分黑色星期五市场份额。

城市-用户-单人消费额

从上图可知,A/B/C三城市单人消费额有一定差异,B城市整体消费水平最高(中位数最高),三城市单人消费额下限差不多,而上限B>A>>C,说明B城市最高与最低单人消费额差距最大,离散程度最大,而A城市平均水平略低于B城市,但有大量用户单人消费额远远超出上限,说明A城市存在大量高消费群体,第一名消费额竟接近1100万美元,故A/B城市应注意做好售后服务、品牌等,而C城市中位数接近A/B城的下四分位数,上限也不及A城市上四分位数,消费较A、B城属于低消费人群,应注重薄利多销,采取措施提高销量。

产品维度

产品-最畅销商品前50

P00265242为最畅销商品,可将其作为主打商品,搭配其他商品销售带动销量。

产品-畅销品类

针对最畅销的1、8、5类商品,在销量紧张的B/C城市,要更为注重提前备货,保证商品库存充足。

你可能感兴趣的:(Kaggle案例-基于SQL的Black Friday数据分析)