百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程文章 > 正文

数据分析报告之电商用户行为解读(基于Mysql+Excel)

qiyuwang 2025-03-11 20:55 12 浏览 0 评论

电商用户行为分析报告内容如下(数据链接):

https://tianchi.aliyun.com/dataset/dataDetail?dataId=649&userId=1


01 分析背景

  • 你知道吗?1999年成立的阿里巴巴,现在的年龄已经20+了,可想而知,它陪伴了多少人的青葱岁月!
  • 你知道吗?现在的淘宝用户规模已超7亿,每一位用户在淘宝上留下的印迹,积少成多,可能是绕地球的n圈。
  • 你知道吗?未来的商业世界可能会是全连接的形式,商业世界会愈加透明,未来可期,你准备好了吗?


回归正题,本文的分析数据集来源于阿里,是由不同用户在平台上的行为条条记录而成。通过对用户行为的解读,以此来洞察隐藏在用户各个行为背后的寓意,因本数据集字段较少,所以得到的结论还需更多数据验证。


02 分析目的

通过对用户行为的解读分析,以此来洞察隐藏在用户各个行为背后的寓意,结合洞察的结论提出相关的优化建议给至平台和商家,从而实现平台、商家和用户的共赢。


03 分析思路


-- userbehavior表的概括性指标
SELECT count(distinct 用户ID) as '用户总量',count(DISTINCT 商品ID) as '商品总量',count(DISTINCT 商品类目ID) as '商品类目总量',count(DISTINCT 日期) as '统计时间天数'
from userbehavior;


SELECT 行为类型,count(行为类型) as '行为总量'
from userbehavior
GROUP BY 行为类型
ORDER BY 行为总量 desc;


通过对上图概括性指标的获取,可知在userbehavior表以用户行为为主,源数据集逾百万条,以导入MySQL数据10万条作为样本集进行分析,具体数据导入和清洗可详见第七部分附录含sql对应操作语句


点击、收藏、加购和购买,4个行为贯穿用户的下单过程中,而其中的购买是一笔订单处于完成状态中的重要标志,所以本文依据统计周期内订单的完成状态把用户划分为“未购用户”和”已购用户”,再基于分组对用户做进一步的分析,具体分析思路见下:



-- 根据统计周期内的订单完成状态(即行为类型='buy')将用户区分为:已购用户和未购用户
SELECT sum(case when 行为数量 = 0 then 1 else 0 end) as '未购用户',sum(case when 行为数量 > 0 then 1 else 0 end) as '已购用户',sum(case when 行为数量 = 0 then 1 else 0 end)+sum(case when 行为数量 > 0 then 1 else 0 end)  as total
from (SELECT DISTINCT 用户id, sum(case when 行为类型='buy' then 1 else 0 end)  over (PARTITION by 用户id ) as '行为数量'
from userbehavior) as t

因数据集时间集中在2017年11月25日至12月3日之间,所以在分析中产生的结论还需其他样本集的进一步论证。


04 分析内容

4.1 未购用户分析


-- 创建未购用户信息视图
create view 未购用户表(用户ID,商品ID,商品类目ID,行为类型,行为日期,日期,时间) as 
SELECT 用户ID,商品ID,商品类目ID,行为类型,行为日期,日期,时间
from userbehavior
where 用户id not in (SELECT DISTINCT 用户id
from userbehavior 
where 行为类型 = 'buy');


4.1.1 提出假设1:用户闲逛心理,无明确购买需求;

收集证据:下图先对未购人群的行为分组,划分为单一行为和组合行为【条形图】,后对单一行为(pv)进行商品和品类洞察【散点图】;




-- 人群行为统计
SELECT 用户id,max((case when 行为类型= 'pv' then 'pv' else 0 end ))as 'pv',
max((case when 行为类型= 'fav' then 'fav' else 0 end )) as 'fav',
max((case when 行为类型= 'cart' then 'cart' else 0 end )) as 'cart'
from 未购用户表
GROUP BY 用户id;


得出结论:从图表可以看出,当用户处于闲逛状态时,更倾向于点击浏览单品,在没有明确购物需求下,产生收藏和加购的概率相对较低,且浏览的商品种类和数量无明显规律呈现。假设成立,但因本数据集10万条是完整数据集的子集,故在结论上还需多种样本结论验证。


4.1.2 提出假设2:用户有明确购买需求,但并不紧急需要,所以先收藏加购后等待活动营销时间节点再下单购买;

收集证据:下图对组合行为进行重点分析,尤其是通过时间趋势联系双12活动,观察未购用户在此期间的行为组合类型和日行为总量变化趋势;




得出结论:结合图表,猜测未购用户在有购买需求的前提下,点击商品查看过程中更容易产生加购和收藏行为,且结合时间变化趋势,可推测此类用户在活动中更容易被转化,假设成立。


4.1.3 提出假设3:APP深度用户,已对APP产生习惯依赖,即使未有购物需求,也会自发登录APP进行商品点击浏览等行为;

收集证据:汇总统计未购用户在统计周期内的登录天数;



-- 未购用户日登录频次
SELECT 用户ID,count(DISTINCT 日期) as '登录天数',count(行为类型) as '行为总量'
from 未购用户表
group by 用户ID;


得出结论:从上图可发现,近50%的用户登录天数>=7天,可侧面说明此类用户对app已养成深度购物习惯,随着平台app玩法的日渐增多,用户对平台的黏性更强,尤其是现在很多品牌都有会员制,采取签到等活动,因此假设成立。


4.1.4 提出假设4:未购用户因产品因素而未进行最终购买转化,因素包括但不限于产品断货、用户评论数量少或评论带有负面关注点等;

收集证据:因userbehavior表不涉及产品关于供货量、缺货量和评论量等信息,故无数据可论证;

得出结论:因无数据明证,故假设无法论证,需后续补充数据验证。


4.1.5 提出假设5:未购用户存在比价心理,推测被竞品转化;

收集证据:因userbehavior表不涉及竞品和产品价格等信息,故无数据可论证;

得出结论:因无数据明证,故假设无法论证,需后续补充数据验证。


4.2 已购用户

-- 创建已购用户信息视图
create view 已购用户表(用户ID,商品ID,商品类目ID,行为类型,行为日期,日期,时间) as 
SELECT 用户ID,商品ID,商品类目ID,行为类型,行为日期,日期,时间
from userbehavior
where 用户id in (SELECT DISTINCT 用户id
from userbehavior 
where 行为类型 = 'buy')


4.2.1 统计周期内,已购用户的订单数量组成比例分布情况是什么样?


-- 已购用户的成交单量分布
SELECT 用户ID,成交单量
from (SELECT DISTINCT 用户id, sum(case when 行为类型='buy' then 1 else 0 end)  over (PARTITION by 用户id ) as '成交单量'
from userbehavior) as t
where 成交单量> 0
order by 成交单量 desc


由上图可知,80%的订单量<=4单,且1单占据Top1,那么为什么仅下1单的用户那么多呢?

提出假设:推测在统计周期内仅完成1单的用户,相较多单用户【>=2单】其决策周期较长;

收集证据:将仅下1单的用户购买时长与整体已购用户的购买时长做对比;




得出结论:通过以上2图,可发现在统计周期内,仅下一单的用户决策时间较长,影响决策的因素可能是产品的价格等,假设成立。


4.2.2 统计周期内,已购用户的行为转化贡献占比是什么样?


-- 已购人群行为统计
SELECT 用户id,max((case when 行为类型= 'pv' then 'pv' else 0 end ))as 'pv',
max((case when 行为类型= 'fav' then 'fav' else 0 end )) as 'fav',
max((case when 行为类型= 'cart' then 'cart' else 0 end )) as 'cart',
max((case when 行为类型= 'buy' then 'buy' else 0 end )) as 'buy'
from 已购用户表
GROUP BY 用户id;


4.2.3 统计周期内,已购用户在日期时间分布上呈现什么样的特征?


-- 已购用户日期特征
SELECT 日期,DAYNAME(日期) as '星期类型',count(行为类型) as '行为数量',count(distinct 用户ID) as '日访客数'
from 已购用户表
group by 日期;



SELECT hour(时间) as '小时',count(行为类型) as '行为数量',count(distinct 用户ID) as '日访客数'
from 已购用户表
group by hour(时间) 
ORDER BY 小时;


05 结论

基于用户各行为分析,可发现用户在购物APP上更倾向于组合行为,即点击商品的同时会伴随收藏和加购行为,而收藏和加购中后者的频率远高于前者,与消费者的消费诉求相关;


未购用户出于闲逛心理和对app的依赖感,即使在无明确消费诉求时也会习惯登录app对商品点击浏览,对比有明确需求的用户则会对心仪商品进行收藏加购,以便在活动节点上下单购买;


在9天的统计周期内,已购用户的完成4笔以内的订单占据仅80%,其中仅完成1单的用户相对整体已购用户,其决策周期人均4天左右;


对已购用户的转化贡献行为分析,可发现点击+加购双重行为的用户占比最高,以此可推测此类用户相对其他行为类型用户更容易被转化;


对已购用户的时间分析,可得出单日变化趋势容易受节假日活动的影响,且变化明显。对1天各小时的分析,用户的行为趋势与工作通勤休息密切相关,同时上午10点一般是聚划算活动的开盘时间,所以这也是造成用户在10点形成小高峰的原因。


06 建议

提升用户组合行为:建议商家在店铺首页、商品主图和详情页等版块通过图文视频等形式引导用户将产品收藏加购,且在商家后台将近期有过收藏加购行为的用户圈选出来进行定向关怀,比如发送优惠券等;


引入RFM分析模型,对人群进行精细化运营:根据用户价值进行打分,将用户依据价值高低进行分类,对其中重要价值用户、重要发展用户和重要保持用户等进行特定运营,增加客户黏性,比如上面所说的app依赖用户;


图片来源于《猴子聊数据分析》


恰当的时间点黏住客户:根据用户在时间节点上的规律,可在白天利用碎片化时间去触达客户,比如微淘等内容营销,而在晚上的7-9点之间则可以通过直播等形式让用户加入互动。


07 附录-数据清洗过程

7.1 选择子集

本文所使用表UserBehavior,含5个字段,分别是:用户ID、商品ID、商品类目ID、行为类型和时间戳,导入MySQL数据后会发现“时间戳”这一字段不可直接使用,需进行sql语句处理成日期型,解决方案如下:




‘时间戳’那一列建议保留,亦可视具体情况做删除处理。

因UserBehavior表本身字段较少,且5个字段都是关键字段,所以在子集选择上不做进一步处理。


7.2 列名重命名

导入MySQL数据后,UserBehavior表并无具体对应字段名,显示的是首行数据信息,见下图:


为方便后续操作,添加对应字段名:


7.3 删除重复值

导入MySQL数据库共10万条记录,执行上述操作后,仍然显示10万,因此不存在重复值。


7.4 缺失值处理

缺失值有3种表现形式,分别是空格、null和空值,因此严谨起见需3种形式轮番检查,具体语句见下:

以上语句执行后,均是10万条,所以没有缺失值存在。


7.5 一致化处理

以UserBehavior表的’时间戳’字段为例,将由‘时间戳’复制的‘行为日期’进一步拆分,拆分为年月日和具体时分秒2列,操作见下:



7.6 异常值处理

检查UserBehavior表的时间段是否在11月25至12月3日之间,检查结果如下:


截图显示,有之前的日期数据存在,下一步选取不在要求范围内的数据进行剔除,操作如下:

相关推荐

# 安装打开 ubuntu-22.04.3-LTS 报错 解决方案

#安装打开ubuntu-22.04.3-LTS报错解决方案WslRegisterDistributionfailedwitherror:0x800701bcError:0x80070...

利用阿里云镜像在ubuntu上安装Docker

简介:...

如何将Ubuntu Kylin(优麒麟)19.10系统升级到20.04版本

UbuntuKylin系统使用一段时间后,有新的版本发布,如何将现有的UbuntuKylin系统升级到最新版本?可以通过下面的方法进行升级。1.先查看相关的UbuntuKylin系统版本情况。使...

Ubuntu 16.10内部代号确认为Yakkety Yak

在正式宣布Ubuntu16.04LTS(XenialXerus)的当天,Canonical创始人MarkShuttleworth还非常开心的在个人微博上宣布Ubuntu下个版本16.10的内...

如何在win11的wsl上装ubuntu(怎么在windows上安装ubuntu)

在Windows11的WSL(WindowsSubsystemforLinux)上安装Ubuntu非常简单。以下是详细的步骤:---...

Win11学院:如何在Windows 11上使用WSL安装Ubuntu

IT之家2月18日消息,科技媒体pureinfotech昨日(2月17日)发布博文,介绍了3中简便的方法,让你轻松在Windows11系统中,使用WindowsSubs...

如何查看Linux的IP地址(如何查看Linux的ip地址)

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。...

怎么看电脑系统?(怎么看电脑系统配置)

要查看电脑的操作系统信息,可以按照以下步骤操作,根据不同的操作系统选择对应的方法:一、Windows系统通过系统属性查看右键点击桌面上的“此电脑”(或“我的电脑”)图标,选择“属性”。在打开的...

如何查询 Linux 内核版本?这些命令一定要会!

Linux内核是操作系统的核心,负责管理硬件资源、调度进程、处理系统调用等关键任务。不同的内核版本可能支持不同的硬件特性、提供新的功能,或者修复了已知的安全漏洞。以下是查询内核版本的几个常见场景:...

深度剖析:Linux下查看系统版本与CPU架构

在Linux系统管理、维护以及软件部署的过程中,精准掌握系统版本和CPU架构是极为关键的基础操作。这些信息不仅有助于我们深入了解系统特性、判断软件兼容性,还能为后续的软件安装、性能优化提供重要依据。接...

504 错误代码解析与应对策略(504错误咋解决)

在互联网的使用过程中,用户偶尔会遭遇各种错误提示,其中504错误代码是较为常见的一种。504错误并非意味着网站被屏蔽,它实际上是指服务器在规定时间内未能从上游服务器获取响应,专业术语称为“Ga...

猎聘APP和官网崩了?回应:正对部分职位整改,临时域名可登录

10月12日,有网友反映猎聘网无法打开,猎聘APP无法登录。截至10月14日,仍有网友不断向猎聘官方微博下反映该情况,而猎聘官方微博未发布相关情况说明,只是在微博内对反映该情况的用户进行回复,“抱歉,...

域名解析的原理是什么?域名解析的流程是怎样的?

域名解析是网站正常运行的关键因素,因此网站管理者了解域名解析的原理和流程对于做好域名管理、解决常见解析问题,保障网站的正常运转十分必要。那么域名解析的原理是什么?域名解析的流程是怎样的?接下来,中科三...

Linux无法解析域名的解决办法(linux 不能解析域名)

如果由于误操作,删除了系统原有的dhcp相关设置就无法正常解析域名。  此时,需要手动修改配置文件:  /etc/resolv.conf  将域名解析服务器手动添加到配置文件中  该文件是DNS域名解...

域名劫持是什么?(域名劫持是什么)

域名劫持是互联网攻击的一种方式,通过攻击域名解析服务器(DNS),或伪造域名解析服务器(DNS)的方法,把目标网站域名解析到错误的地址从而实现用户无法访问目标网站的目的。说的直白些,域名劫持,就是把互...

取消回复欢迎 发表评论: