数据清洗
SELECT * FROM userbehavior
– 数据清洗
– 删除重复值
SELECT * FROM userbehavior
GROUP BY user_id,item_id,category_id,behavior_type,timestamp
HAVING COUNT(*)>1;
– 处理缺失值
select
count(user_id),
count(item_id),
count(category_id),
count(behavior_type),
count(timestamp)
FROM userbehavior;
– 时间序列处理:
– Timestamp列无法直接进行分析,需要对其列转化为三列,分别为时间,日期,小时
alter table userbehavior add column date_time timestamp(0) null;
– FROM_UNIXTIME:
update userbehavior set date_time = FROM_UNIXTIME(timestamp
,’%Y-%m-%d %H:%i:%s’);
ALTER TABLE userbehavior ADD COLUMN Date char(10) NULL;
UPDATE userbehavior SET Date = FROM_UNIXTIME(Timestamp
,’%Y-%m-%d’);
ALTER TABLE userbehavior ADD COLUMN Time char(10) null;
update userbehavior set Time = SUBSTRING(Date_time FROM 12 FOR 2);
SELECT * FROM userbehavior
– 异常值处理
– 由于项目背景是要通过对2017年11月25日至2017年12月3日之间的淘宝用户行为数据集进行隐式反馈推荐问题的研究,
– 所以要对这个时间段外的数据进行删除处理。
select max(date_time),min(date_time) from userbehavior;
– 把不在2017-11-25至2017-12-03这个时间段内的异常时间值删除
delete from userbehavior where date >‘2017-12-03’ or date < ‘2017-11-25’;
– 再次检查是否存在不在2017-11-25至2017-12-03这个时间段内的异常值
select max(date_time),min(date_time) from userbehavior;
SELECT * FROM userbehavior
;
SELECT count(DISTINCT User_ID) as 用户数,
count(DISTINCT Item_ID) as 商品数量,
count(DISTINCT Category_ID) as 商品类目数量,
count(Behavior_type) as 行为数量
FROM userbehavior;
数据分析概览
SELECT * FROM userbehavior
;
select count(distinct behavior_type) FROM userbehavior
;
select distinct behavior_type FROM userbehavior
;
– 总体UV,PV,人均浏览次数,成交量
select count(distinct user_id) as ‘独立访客数’,