淘宝电商用户行为数据分析及可视化—基于MySQL/Power BI(含代码)

本项目以阿里巴巴移动电商平台的真实用户-商品行为数据为基础,使用MySQL进行数据清洗,以AARRR模型、RFM模型为基础展开分析,再用Power BI做可视化,最后从提升用户活跃度、促进商品成交、差异化用户营销三个方面提出建议。

参考了网上公开分享的一些帖子,把思路整合后发现:需要提取的一些模型、指标、算法,基本可以落到AARRR模型、RFM模型中。因此从这两个模型出发,查找需要的数据,进行分析,再把部分数据使用Power BI可视化。

在正式写代码之前,先理顺分析思路,同时考虑后续可视化过程会用到的数据、表现形式。当然,所有的细节部分不是一下就能全部想好的,也是在敲代码的过程中不断完善。

我的思维导图
在这里插入图片描述
Let’s Go. 让我们一起开始吧。

一、数据源

数据来自天池竞赛:
https://tianchi.aliyun.com/dataset/dataDetail?dataId=46&userId=1

竞赛数据包含两个部分。

第一部分是用户在商品全集上的移动端行为数据(D),表名为tianchi_mobile_recommend_train_user,包含如下字段:
在这里插入图片描述
第二个部分是商品子集(P),表名为tianchi_mobile_recommend_train_item,包含如下字段:
在这里插入图片描述
Zip文件中的数据集更大,有1225万。我用的是下图中的红框中的数据,33.2MB,共有80万条。
在这里插入图片描述

二、数据清洗

导入数据到mysql

导入数据时,所有的字段都按照默认格式varchar导入▼,导入成功后再设计表,按照需求修改字段格式。
在这里插入图片描述

血泪教训 :第一次导入时,把time设置成了datetime格式,导入成功后time一列全部显示为0,后面又费了功夫把它给调对。

将80万条数据导入mysql,花费了30分钟,导入成功,点击关闭。▼

在这里插入图片描述

数据概览▼
在这里插入图片描述

重复值

有重复,但是根据业务理解,不需要作处理。代码如下:

select *, count(user_id) from data 
group by user_id, item_id, behavior_type, item_id, time 
having count(user_id) > 1;

异常值

查看time的范围,behaviou_type的类型。代码如下:

select min(time), max(time) from data;
select distinct behavior_type from data;

在这里插入图片描述
在这里插入图片描述

缺失值

查看各字段的数量,发现time有一条缺失。代码如下:

select count(user_id), count(item_id), count(behavior_type), 
count(item_id), count(time) 
from data; 

在这里插入图片描述
查看找到它,删除。代码如下:

select * from data where time is null;
delete from data where time is null;

在这里插入图片描述

数据一致化

对time字段分成日期date和时段hours两个字段;为了便于理解,把behavior_type的数字改为英文简写。代码如下:

# 把time分成date和hours两个字段,然后删除time
alter table data add column date date;
alter table data add column hours varchar(255);
update data set date = left(time, 10);
update data set hours = substring(time, 12,2);

# 把behavior_type 分别更名为pv, col, cart, buy
update data 
set behavior_type = (
	case 
	when behavior_type = 1 then 'pv' 
	when behavior_type = 2 then 'col'
	when behavior_type = 3 then 'cart'
	when behavior_type = 4 then 'buy'
	else '其他'
	end
);

# 删除time这一列
alter table data drop time;

血泪教训:刚开始完全把hours设置成time格式,使用right(time, 8),最终结果显示为00:00:00的格式。但是,后来在使用powerbi可视化过程中发现,这样会出现一些如下图红框中的错误显示。最终决定,hours使用varchar格式,显示12、13、15、17这样的格式,方便可视化。错误代码如下,不要这样做:

# 错误示范
alter table data add column hours time;
update data set hours = right(time, 8);

在这里插入图片描述
在这里插入图片描述

三、数据分析

使用sql进行数据分析的过程,我把它理解为,理解业务,写代码,建视图,可视化。

视图命名规则基本按照【维度_度量】这样的格式,方便自己理解。命名基本用英文全称,少用简写,方便后续的理解与回顾。

1. 整体活跃度,基于AARRR模型

“获取(Acquisition)”、“激活(Activation)”、“留存(Retention)”、“传播(Referral)”、“收入(Revenue)”

1.1 用户获取Acquisition

代码参照后面的留存率day_0

每日都有新增用户。11月18日—11月21日新增用户骤降,后续持续递减。▼

本项目数据从11月18日开始,到12月18日结束,11月18日前无可分析数据。在靠近11月18日的当日新增用户中很大一部分并非当日新增,而是18日前就已经活跃用户。日期靠后的数据,越能体现出当日新增真实值,具体值需要等待后续数据。
在这里插入图片描述

1.2 用户激活Activation

PV, UV

本项目数据源共802757条,pv为756386 ,uv为6467, 人均页面访问数为116.96。代码如下:

# 整体指标 
create view whole_index as 
select sum(user_pv) as PV, count(user_id) as UV, format(sum(user_pv)/count(user_id), 2) as 人均页面访问数
from (select user_id, count(behavior_type) as user_pv 
from data where behavior_type = 'pv' group by user_id) as a;

在这里插入图片描述

跳失率

浏览页跳失率为25.84%,关键页跳失率74.16%。

跳失分析:商品不符合用户需求,竞争力不够。可对比竞品网站,在商品的定价、商品陈列故事、商品详情描述等方面做出改进。

代码如下:

-- 浏览页跳失率:用户仅仅有pv行为,没有其它的收藏、加购、购买行为,

create view view_bounce_rate as
select (select count(distinct user_id) from data) as 总用户, 
count(distinct user_id) as 仅pv用户,
concat(format(count(distinct user_id)
/(select count(distinct user_id) from data)*100, 2), '%') as 浏览页跳失率
from data 
where user_id not in 
(select distinct
  • 23
    点赞
  • 177
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
数据分析案例淘宝⽤户⾏为分析完整报告 ⼀、项⽬背景 ⼀、项⽬背景 UserBehavior为淘宝⽤户⾏为的数据集,数据集包括了2017年11⽉25⽇⾄2017年12⽉3⽇之间,有⼤约82万随机⽤户的⽤户⾏ 为(⾏为包括点击pv,购买buy,加购物车chart,收藏fav)数据。 ⼆、项⽬⽬标 ⼆、项⽬⽬标 通过对⽤户⾏为的分析,主要实现下⾯两个⽬的: 1、为客户提供更精准的隐式反馈,帮助⽤户更快速找到商品; 2、为提⾼公司的交叉销售能⼒,提⾼转化率,销售额,提升公司业绩。 三、分析思路 三、分析思路 主要从以下四个维度对⽤户⾏为进⾏分析和建议: 1、⽤户⾏为间的转化情况分析:利⽤漏⽃模型分析⽤户从商品浏览到购买整个过程中,常见的电商分析指标,确定各个环节流失率, 提出改善转化率的建议。 2、⽤户的⾏为习惯分析:利⽤pv、uv等指标,找出⽤户活跃的⽇期以及每天的活跃时间段。 3、⽤户类⽬偏好分析:根据商品的点击、收藏、加购、购买频率,探索⽤户对商品的购买偏好,找到针对不同商品的营销策略(购买 率较⾼的类⽬和产品,优化产品推荐)。 4、⽤户价值分析:找出最具有价值的核⼼⽤户群,针对这个群体推送个性化推送,优惠券或者活动。 逻辑如下: 四、数据处理 四、数据处理 主要使⽤⼯具:Navicat for MySQLMySQL, power BI。 (⼀)准备数据 (⼀)准备数据 1、数据来源 、数据来源 阿⾥云天池: 2、将数据导⼊ 、将数据导⼊MySQL 使⽤Navicat导⼊功能,导⼊后结果如下图,这⾥会出错卡在导⼊步骤的5/8位置。 使⽤代码直接导⼊,结果如下图,未出现上述卡住现象。 3、数据理解 、数据理解 本数据主要包了⼤概82万条数据,每⼀⾏分别表⽰⼀个⽤的⾏为,由⽤户ID(User_ID)、产品ID(Item_ID)、类⽬ ID(Category_ID)、⾏为类型(Behavior_type)、时间戳(Timestamp),⾏为类型⼜分为点击(pv)、收藏(fav)、加购物车 (chart)、购买(buy)。 (⼆)数据清洗 (⼆)数据清洗 1、 、Timestamp⼀致化处理 ⼀致化处理 Timestamp列,⽆法直接分析,需要将其划分为三列,分别为时间,⽇期,⼩时。 --添加新列,根据Date_time返回⽇期时间 --添加新列,根据Date返回⽇期时间 --添加新列,根据Time返回⼩时 2、挑出⽬标数据集 、挑出⽬标数据集 由于项⽬背景是需要对2017年11⽉25⽇⾄2017年12⽉3⽇之间⽤户⾏为数据集进⾏隐式反馈推荐问题的研究,所以需要对不在这 个时间内的数据进⾏删除。 --先检查是否有在2017-11-01和2017-11-20之间的时间值。 --删除掉这段时间以外的⾏ 3、删除重复值 、删除重复值 使⽤SQL语句发现,有出现重复字段。 全字段重复有两⾏,下⾯去重⽅法并不对全字段的奏效,我采⽤的是直接删除,删除数据仅4⾏针对现有的380万⾏数据影响较⼩。 4、缺失值处理 、缺失值处理 对所有列进⾏了计数查询后,发现'Timestamp'字段有null值,然后我们删除空值所在的列。 数据清洗完毕。 导⼊数据集⼤⼩预览: (三)数据分析 (三)数据分析 结果均为先使⽤sql分析数据,获得分析结果,然后将分析结果导出到excel或者power BI中进⾏可视化。 1、数据整体情况概述 、数据整体情况概述 a、总体uv、pv、⼈均浏览次数、成交量 b、⽇均uv、pv、⼈均浏览次数、成交量 使⽤power BI处理数据后将其导出后分析对应的每个指标与时间之间的关系。 c.⽤户整体⾏为数据 d、⽤户的复购率和跳失率 2017年11⽉25⽇⾄2017年12⽉3⽇之间,⽤户的复购率为66.4%且流失率为0,说明淘宝对⽤户有较⼤的吸引⼒使⽤户停留且⽤户 的忠诚度⾮常⾼。可以进⼀步提⾼复购率,⿎励⽤户更⾼频次的购物。 2、⽤户转化情况分析 、⽤户转化情况分析 a、⽤户转化率及流失分析 上图统计了各个⾏为的总数量,点击后,到加购物车或者收藏概率在3%-6%之间,⽽最后真正购买的概率降到了2.4%,说明⽤户的⾏ 为在浏览了商品详情页后出现了⼤量的流失。但是⽤户是否也是在点击后产⽣了⼤量的流失呢? 对此,对各个⽤户⾏为类型的⽤户数进⾏了统计,并使⽤漏⽃转化模型进⾏了处理,建⽴了⽤户转化漏⽃图。 上图可以看出,⽤户并未点击后就⼤量流失,并且最后付费⽤户⽐例达到了69%,购买率达到了7成,说明⽤户的购买意愿较为理想。 结合⽤户⾏为数统计推断⽤户的点击⾏为远远超过了收藏和加购物车的⾏为,说明⽤户有较⼤的可能在购物时有"货⽐三家"的习惯。 所以针对⼤部分点击后转化到加购物车和收藏的概率较低有较⼤的提升空间,APP可以通过优化推荐商品的功
Power BI是一种业务智能工具,具有强大的数据分析可视化功能。它可以从各种数据源中提取数据,并通过数据建模和数据处理功能进行清洗和转换。然后,我们可以使用Power BI可视化工具来创建丰富多样的报表和仪表板。 Power BI的使用流程主要包括四个步骤:数据获取、数据转换、数据建模和可视化展示。 在数据获取方面,Power BI可以从多种数据源中获取数据,如Excel、SQL Server、MySQL数据库以及在线服务如Azure、Salesforce等。通过连接这些数据源,我们可以获取到我们所关心的数据,准备开始数据分析数据转换是数据分析的重要一步。在这一步中,我们可以使用Power Query对数据进行清洗、筛选、转换和合并。例如,我们可以删除重复数据、处理缺失值、提取关键信息等。这样,我们可以获得高质量的数据集。 通过数据建模,我们可以根据业务需求创建数据模型。Power BI数据建模工具可以帮助我们进行表之间的关系建立、定义度量和指标等。这样,我们可以更好地理解数据,为数据分析做好准备。 最后,我们可以使用Power BI可视化工具将数据进行视觉化展示。Power BI提供了多种图表和可视化元素来展示数据。通过选择适当的图表类型,我们可以更直观地展示数据的特点、趋势和关联关系。此外,Power BI还支持创建交互式的报表和仪表板,用户可以自主选择感兴趣的数据进行分析和查看。 总结来说,Power BI数据分析可视化实战是一种强大的工具,能够帮助用户数据中挖掘有价值的信息,并通过可视化展示方式进行呈现。无论是商务分析、市场营销还是销售预测等领域,Power BI都可以提供实用的解决方案,帮助用户更好地理解和利用数据

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值