SQL数据分析-淘宝用户行为

写在前面的话为了巩固这段时间SQL的学习成果,同时方便以后回忆和二次学习,我决定把自己做过的项目 淘宝用户行为分析 整理出来,和各位网友分享。如果有什么意见和建议,欢迎大家提出来进行讨论,让我们共同学习和进步。一、数据收集1.1 数据源阿里云-天池-淘宝数据分析1.2 数据说明1.3 数据导入二、数据清洗2.1 去除重复值我们可以通过这三个字段:userid, itemid, t...
摘要由CSDN通过智能技术生成

写在前面的话
为了巩固这段时间SQL的学习成果,同时方便以后回忆和二次学习,我决定把自己做过的项目 淘宝用户行为分析 整理出来,和各位网友分享。同时欢迎大家提出不同意见和建议,我们一起讨论,共同学习和进步。

处理数据用到的软件
数据导入和导出:Navicat Premium 12
可视化:Tableau 2019.4 、Excel 2019

一、数据收集

1.1 数据获取

数据源:阿里云-天池-淘宝数据分析

1.2 数据说明

UserBehavior.csv 是阿里巴巴提供的一个淘宝用户行为数据集,用于隐式反馈推荐问题的研究。

文件名称 说明 包含特征
UserBehavior.csv 包含所有的用户行为数据 用户ID,商品ID,商品类目ID,行为类型,时间戳

该数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的组织形式和MovieLens-20M类似,即数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下:

列名称 说明
用户ID 整数类型,序列化后的用户ID
商品ID 整数类型,序列化后的商品ID
商品类目ID 整数类型,序列化后的商品所属类目ID
行为类型 字符串,枚举类型,包括(‘pv’, ‘buy’, ‘cart’, ‘fav’)
时间戳 行为发生的时间戳

1.3 数据导入

由于数据量庞大,无法使用Excel直接处理,故本次使用数据库管理软件Navicat,导入了10W条数据集,进行分析处理。接下来是导入流程:

1.3.1 新建数据库

在这里插入图片描述

1.3.2 导入数据源

表–右键单击–导入向导–选择数据源–选择分隔符–选择导入记录条数与时间格式–接下来默认即可-开始耐心等待导入
在这里插入图片描述
在这里插入图片描述
这部分就不赘述啦,csv文件导入网上教程很多,大家可以搜索关键词 Navicat 导入csv

Nacivat使用心得:这是我自己在使用中遇到的问题,对表做操作以后刷新,居然没反应,后来我发现可以这样解决:打开表-随便选中某一列-右键-刷新,屡试不爽啊。

二、数据清洗

2.1 去除重复值

我们可以通过这三个字段:userid, itemid, timestamps 是否完全相同,来检查是否有相同的记录。也就是说,我们认为userid, itemid, timestamps这三个字段相当于这个表的主键,三者联合起来,完全定义一条独立的记录。
SQL查询语句如下:

SELECT userid FROM userbehavior
GROUP BY userid,itemid,timestamps
HAVING COUNT(userid) > 1;

SQL查询结果如下:


结果显示没有重复记录

2.2 检查缺失值

我们使用计数,既可以得到每一列的非空值数目
SQL查询语句如下:

-- 1.检查是否有缺失值
SELECT COUNT(userid),COUNT(itemid),COUNT(categoryid),count(behaviortype),COUNT(timestamps) 
FROM userbehavior

SQL查询结果如下:
每一列的记录条数都相同,所以没有缺失值
每一列的记录条数都相同,所以没有缺失值。

2.3 日期格式转换

在mysql中因为timestamp无法支持到毫秒,所以很多时候采用毫秒进行存储。那么如何将存储在数据库中Int类型的时间,如: 1344954515 ,转换成我们正常可以肉眼能看懂的时间格式呢?

知识点1:MySQL格式化时间戳函数:FROM_UNIXTIME()
知识点2:Mysql字符串截取总结:left()、right()、substring()、substring_index()

因为源数据格式不符合我们接下来的分析需求,所以需要进行数据转换:

2.3.1 处理timestamp时间列

SQL查询语句如下:

-- 2.1 处理timestamp时间列
-- 添加新列dates_time,返回日期和时间
ALTER TABLE userbehavior 
ADD COLUMN dates_time TIMESTAMP(0) NULL;
UPDATE userbehavior SET dates_time = FROM_UNIXTIME(timestamps);

2.3.2 添加新列dates,返回日期

SQL查询语句如下:

-- 2.2 添加新列dates,返回日期
-- 注意指定格式的大小写
ALTER TABLE userbehavior 
ADD COLUMN dates CHAR(10) NULL;
UPDATE userbehavior SET dates = FROM_UNIXTIME(timestamps,'%Y-%m-%d');

2.3.3 添加新列time,返回时间

SQL查询语句如下:

-- 2.3 添加新列time,返回时间
ALTER TABLE userbehavior 
ADD COLUMN time CHAR(10) NULL;
UPDATE userbehavior SET time = FROM_UNIXTIME(timestamps,'%H:%i:%S');-- 注意指定格式的大小写

2.3.4 添加新列time_hour,返回hour

SQL查询语句如下:

-- 2.4 添加新列time_hour,返回hour
-- 为了方便后面按照小时对用户习惯进行分析
ALTER TABLE userbehavior 
ADD COLUMN time_hour CHAR(10) NULL;
UPDATE userbehavior SET time_hour = LEFT(time,2);

2.3.5 数据展示

经过上面的数据清洗过程,源数据如下图所示:
阶段性清洗后的数据

2.4 剔除异常值

因为我们分析的时间范围是2017-11-25至2017-12-3 (9天),所以需要剔除不在这9天的数据:

SQL查询语句如下:

-- 3.剔除异常值
-- 排除日期不在2017-11-25至2017-12-3这9天的数据
DELETE FROM userbehavior
WHERE dates < '2017-11-25' or dates > '2017-12-03';

然后我们再次检查一下源数据:

-- 4.再次检查
SELECT MIN(dates),MAX(dates) FROM userbehavior;

SQL查询结果如下:
最小和最大日期均在范围内
结果显示,目前的日期范围已经符合我们的分析需求。

三、数据分析

3.1 分析思路

在这里插入图片描述

3.2 电商数据分析

知识点1:如何清楚易懂的解释“UV和PV"的定义? - 知乎
知识点2:跳出率
知识点3:重复购买率
知识点4:SEM流量四象限分析法

3.2.1 总体流量 – uv / pv / 收藏 / 加购 / 下单数量

SQL查询语句如下:

-- 1.总体 uv/点击/收藏/加购/下单数量
select 
COUNT(DISTINCT userid) AS 总用户数,
SUM(CASE WHEN behaviortype = 'pv'   THEN 1 ELSE 0 END ) AS 总点击数量,
SUM(CASE WHEN behaviortype = 'fav'  THEN 1 ELSE 0 END ) AS 总收藏数量,
SUM(CASE WHEN behaviortype = 'cart' THEN 1 ELSE 0 END ) AS 总加购数量,
SUM(
  • 10
    点赞
  • 90
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 阿里天池淘宝2017-11用户行为数据分析是基于Hive进行的。Hive是一个构建在Hadoop之上的数据仓库基础架构,提供了类似于SQL的查询语言HiveQL,使用户能够在大规模数据集上进行数据查询和分析。 在进行淘宝用户行为数据分析时,首先需要将原始数据导入Hive数据仓库中。数据源可以是来自淘宝用户行为日志文件,其中包含了用户淘宝平台上的各种行为,例如浏览商品、点击广告、添加购物车、购买等等。 然后,使用HiveQL语言编写查询语句,通过Hive进行数据分析数据分析的目标可能包括但不限于:用户行为的频率分布、用户购买转化率、热门商品排行、用户购买决策的时间分布等等。通过对用户行为数据进行分析,阿里天池淘宝可以洞察用户行为的规律,发现用户需求和购物习惯,从而为优化产品和推广策略提供参考。 Hive的优势之一是可以处理大规模的数据,因此对于淘宝这样拥有海量用户和数据的平台而言,使用Hive进行用户行为数据分析非常合适。此外,Hive还提供了数据仓库的概念,可以通过不同的方式将数据进行结构化和存储,以方便后续的查询和分析。 综上所述,阿里天池淘宝2017-11用户行为数据分析基于Hive,通过将用户行为数据导入Hive数据仓库,利用HiveQL进行查询和分析,从而洞察用户行为规律,为产品和推广策略优化提供依据。Hive作为一个大数据处理工具,对于处理淘宝这样海量用户和数据的平台来说是非常适用的。 ### 回答2: 阿里巴巴天池是一个面向数据科学家和机器学习爱好者的在线数据科学竞赛平台,提供丰富多样的数据集和竞赛任务。其中,淘宝用户行为数据分析是天池平台的一个竞赛任务。在这个竞赛中,参赛者需要使用Hive来完成对淘宝2017年11月的用户行为数据进行分析。 Hive是基于Hadoop的数据仓库系统,它可以处理大规模数据,并提供了类似于SQL的查询语言,使得用户可以通过编写SQL式的语句来查询和分析数据。在淘宝用户行为数据分析任务中,Hive可以帮助分析师和数据科学家从大量数据中提取有用的信息。 通过Hive,我们可以利用淘宝用户行为数据进行各种分析,如用户购买行为、浏览行为、搜索行为等。我们可以使用Hive的查询语句来筛选、聚合和统计数据,以得出用户行为的关键指标。 一种常见的使用Hive进行用户行为数据分析的方法是利用Hive提供的内置函数和操作符来进行数据的转换和计算。通过使用Hive的内置函数,我们可以对用户行为数据进行预处理,如将日期格式化、提取关键字等。然后,我们可以使用Hive的聚合函数和操作符来计算用户行为的各种指标,如总购买金额、平均浏览次数等。 此外,Hive还支持用户自定义函数和UDAF(用户自定义聚合函数),这使得分析师和数据科学家可以根据自己的需求来扩展Hive的功能。通过编写自定义函数,我们可以在Hive中实现更加复杂的计算和分析。 总的来说,通过Hive,我们可以使用SQL式的查询语言对阿里天池淘宝2017年11月的用户行为数据进行分析。通过Hive的内置函数和操作符,以及用户自定义函数和UDAF,我们可以从大规模的数据中提取有用的信息,并计算出用户行为的各项指标。 ### 回答3: 阿里天池淘宝2017-11用户行为数据分析基于Hive,可以使用Hive这个大数据存储和计算框架对淘宝2017年11月的用户行为数据进行分析。 Hive是一个基于Hadoop的数据仓库基础架构,可以将大规模数据集存储在Hadoop集群中,并同时提供类似于关系型数据库的查询和分析功能。通过Hive,可以利用SQL的方式对大规模数据进行查询和分析,使得数据分析师更加方便地处理和分析海量数据。 对于淘宝2017-11用户行为数据,可以将其导入Hive中进行分析。首先,可以创建一个Hive表,定义各个字段的名称和数据类型,然后将用户行为数据导入到这个表中。接着,可以使用Hive提供的SQL语句进行各种查询和分析。 例如,可以通过查询语句统计每个用户的购买次数、浏览次数、加入购物车次数等行为情况,从而分析用户的购买意向和行为模式。也可以对用户的购买行为进行细分,比如按照地区、商品类别等进行分组,以了解不同用户群体的购物习惯和喜好。此外,还可以对用户行为的时间分布进行分析,了解用户在不同时间段的活跃度和购买偏好。 通过Hive的数据分析功能,可以深入挖掘淘宝2017-11用户行为数据中潜在的商业价值,为企业的市场营销和业务决策提供重要参考依据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值