一、 项目背景
项目对京东零售集团的运营数据集进行指标分析,研究京东用户在购物过程中的行为习
惯,购物偏好,在购物过程中各个环节的转化和流失情况,为运营决策提供数据支撑。
二、 数据介绍
本数据集采用京东用户行为数据表(jdata_action),包含了2018-02-01到2018-04-15期间用户的购物行为信息,数据已经过脱敏处理,数据集包含5个字段,各字段的含义如下:
三、 数据清洗
本项目数据清洗工作如下所示:
四、 分析思路
本项目主要从用户整体行为信息,用户行为习惯,用户在购物环节转换流失情况,用户购物偏好以及用户价值等方面进行数据分析,分析思路如下图
五、 数据清洗
1. 选择子集
数据量较大,本次分析选取2018-04-02,到2018-04-14时间段内的数据。
2. 整理列字段
(1)添加日期时间列
本原始数据集共有user_id, sku_id,action_time,module_id,type等5个字段,用户行为时间action_time精确到秒,为了便于分析用户行为随时间变化的规律,在源数据集中添加两个字段date和time,分别存放用户发生行为的日期和小时信息。SQL代码如下:
ALTER TABLE jd_data ADD COLUMN date VARCHAR ( 10 ) NOT NULL;
UPDATE jd_data
SET date = SUBSTRING( action_time, 1, 10 );
ALTER TABLE jd_data ADD COLUMN time VARCHAR ( 10 ) NOT NULL;
UPDATE jd_data
SET time = SUBSTRING( action_time, 12, 2 );
(2)用户行为类型映射
数据集中用户的行为类型type的值为1,2,3,4,5,其中1为浏览,2为下单,3为关注,4为评论,5为加购物车。本次分析暂不考虑评论的行为信息,因此在分析中删除行为类型为4的类型,另一方面,为了便于理解,将其余行为类型作如下映射,1:pv,2:pay,3:fav,5:cart。相关SQL语句如下:
#删除行为类型为4的数据
DELETE FROM jd_data
WHERE type = 4;
#对用户行为类型进行映射处理
UPDATE jd_data
SET type = 'pv'
WHERE
type = 1;
UPDATE jd_data
SET type = 'pay'
WHERE
type = '2';
UPDATE jd_data
SET type = 'fav'
WHERE
type = '3';
UPDATE jd_data
SET type = 'cart'
WHERE
type = '5';
处理完成后,查看type中的行为类型
SELECT DISTINCT type
FROM jd_data;
最终查询结果如下,行为类型中有pv,pay,cart,fav四种
3. 删除重复值
设置数据集字段user_id,sku_id,action_time为主键,确保导入的数据没有重复值。为了进一步核实数据重复情况,作如下检查。
DELETE FROM jd_data
WHERE (user_id,sku_id,action_time,module_id,type)
IN
(SELECT * FROM
(SELECT user_id,sku_id,action_time,module_id,type
FROM jd_data
GROUP BY user_id,sku_id,action_time,module_id,type
HAVING COUNT(*)>1) temp);
运行结果如下,各字段均为NULL,证实数据集中无重复值。
4. 缺失值处理
查看数据集中有误缺失值。
SELECT
COUNT( user_id ),
COUNT( sku_id ),
COUNT( action_time ),
COUNT( module_id ),
COUNT( type ),
COUNT( date ),
COUNT( time )
FROM
jd_data;
运行结果如下,各个字段的数据个数均为6044722,则表中无缺失值。
5. 异常值处理
本次分析主要针对于2018-04-02,到2018-04-14时间段内的数据,查询数据集中有误此时间范围外的数据。
SELECT MIN(date),MAX(date)
FROM jd_data;
运行结果如下,日期在设定的范围内,数据集中无异常值。
六、 数据分析
(一) 数据总体行为概览
1. 总体UV,PV,人均浏览次数,成交量<