本文主要介绍“黑色星期五”数据清洗与利用数据构建分析模型。
1. 数据介绍
1.1 数据来源
数据集下载于kaggle竞赛平台:BlackFriday数据集
该数据集里记录了零售店在黑色星期五的交易记录样本,包含537577条数据,5891个不同user_id, 3623个不同product_id,, 7个年龄段,21种职业,3个城市,3个产品一级分类,18种商品分类的不同维度数据。
1.2 字段解释
User_ID: 用户ID
Product_ID: 产品ID
Gender: 性别
Age: 年龄(分0-17、18-25、26-35、36-45、46-50、51-55、55+共7个年龄段)
Occupation: 职业(由0~20数字组成,分成20个类别)
City_Category: 城市(A,B,C )
Stay_In_Current_City_Years:在当前城市停留的年份(分0、1、2、3、4+共5个类别)
Marital_Status: 婚姻状况(0表示未婚,1表示已婚)
Product_Category_1 产品类别1,是一级分类
Product_Category_2 产品类别2,是二级分类
Product_Category_3 产品类别3,是三级分类
Purchase: 金额(美元)
2.数据导入及清洗
2.1 数据导入
(1)将获取的Excel数据表Black-Friday(原始数据)导入SQLyog。
(2)检查导入数据是否有漏项,EXCEL中共有数据537578行(包含列名1行),在SQLyog中使用MySql语句查询共有537577行(不含列名),数据全部导入成功。
2.2 删除重复值
(1)每一条数据对应的是某客户购买的商品信息和该用户的个人信息,存在同一客户购买多件商品以及某一件商品被多个客户购买的情况,因此无法以单独某一列来确定是否存在重复值。
(2)在此以User_ID拼接Product_ID的形式查看,不存在重复数据,依然有537577行数据。
2.3 缺失值处理
(1)缺失值查询
经查询,除了Stay_In_Current_City_Years、Product_Category_2和Product_Category_3存在缺失值,其他字段的信息均完整。
(2)缺失值处理
Product_Category_2和Product_Category_3两个字段与分析内容无关,所以不予处理。
需要说明的是Stay_In_Current_City_Years的缺失值,经核查是因为在城市呆了4年以上的统一用“4+”表示造成的,所以,该字段无缺失值。
2.4 一致化处理
居住期间的格式统一。由于居住期间在四年以上的“4+”的加号会影响后续的分析,所以全部替换成“4”。
2.5 异常值处理
这里主要检查“购买金额”这个字段,查看购买金额是否出现0或者负值。
结果显示无异常值。
3. 构建模型
3.1 总体销售情况分析
3.2 从用户角度分析
(1)从性别维度分析
(2)从年龄维度分析
(3)从婚姻状况维度分析
(4)结合性别、年龄和婚姻三个指标,综合分析消费的情况
(5)从居住时间维度分析
3.3 从用户所在城市角度分析
3.4 从产品的角度分析
(1)畅销产品分析
(2)一级分类中产品类别1的畅销产品类目分析