分析背景
本文使用SQL+Excel对某个APP的用户属性和行为数据进行分析,通过用户行为分析业务问题,以此来优化广告投放渠道和制定更加有效的营销策略。
提出问题
本文将通过对APP用户行为进行数据分析,解决下面的业务问题:
- 用户的启动、安装以及卸载数据发生了怎样的变化?
- 不同属性的用户启动情况是怎样的?
- 不同功能的启动情况是怎样的?
涉及的分析指标如下:
数据介绍
数据中包含3个数据表:user_id_info、run_info 和 use_function_info,记录了2019年12月24号-26号这3天的用户数据。每个数据表的字段定义如下:
- 用户表(user_id_info):user_id 用户编号、age 年龄、gender 性别、province 省、city 市、sid 渠道;
- 启动表(run_info): user_id 用户编号、m_date 日期、m_time 时间;
- 功能表(use_function_info):user_id 用户编号、m_date-日期、m_time-时间、m_function-功能、m_sid 渠道、m_use_time 耗时、is_success 是否成功;
分析过程
本次分析主要按照下面4个步骤进行:
Step1:数据探索
Step2:数据清洗
Step3:数据处理与分析
Step4:优化建议
一、数据探索
使用 SELECT * FROM 语句分别查询 user_id_info、run_info、use_function_info 这3个表中的所有数据,对表中数据的情况有个基本了解,代码如下:
SELECT * FROM user_id_info;
SELECT * FROM run_info;
SELECT * FROM use_function_info;
二、数据清洗
接下来需要分别对3个表中的数据进行异常检查,同时会使用 DELETE / UPDATE 语句对异常数据进行清洗。
数据清洗可以分为4个环节:1、数据检查——2、查看异常数据——3、数据清洗——4、数据复查
以 user_id_info 表中的 user_id 和 gender 这两个字段为例进行说明:
示例一:对 user_id 进行清洗
1、数据检查:使用 SELECT 语句检查 user_id 的长度,结果显示存在长度为31的异常数据,正常数据长度应该是32;
SELECT DISTINCT length(user_id) FROM run_info;
2、查看异常数据:使用 WHERE 语句筛选出异常数据,结果显示仅有一条异常数据;
SELECT * FROM run_info WHERE length(user_id)=31;
3、数据清洗:使用 DELETE 语句清洗异常数据,这里由于不知道该异常值的正确 user_id,所以直接将其删除;
DELETE FROM run_info WHERE length(user_id)=31;
4、数据复查:再次使用 SELECT 语句查看异常值是否被清洗,结果显示没有了长度为31的数据,说明已经清洗完成
SELECT DISTINCT length(user_id) FROM run_info;
示例二:对 gender 进行清洗
1、数据检查:使用 SELECT 语句检查 gender 都有哪些类别,结果显示存在“女、男、男人、未知”,其中“男人”属于异常值,“未知”说明在获取用户信息的时候可能不愿意透露性别,符合实际情况属于正常值;
SELECT DISTINCT gender FROM user_id_info;
2、查看异常数据:使用 WHERE 语句筛选出异常数据,结果显示仅有一条异常数据;
SELECT * FROM user_id_info WHERE gender='男人';
3、数据清洗:使用 UPDATE 语句进行字段更新,由于这里知道数据对应的正常值,因此保留直接修改为正常值即可;
UPDATE user_id_info SET gender='男' WHERE gender='男人';
4、数据复查:再次使用 SELECT 语句查看异常值是否被清洗,结果显示已经不存在“男人”这一类别,说明已经清洗完成;
SELECT DISTINCT gender from user_id_info;
可参照上面的方式分别对3个表中不同字段的数据进行清洗。
注意事项:
1、在清洗数据的时候会使用 DELETE / UPDATE 语句对数据进行修正,因此为了安全起见,不要直接在原表中清洗数据,可以先复制出一个新的表,然后在这个新表中进行数据的清洗,复制表的语句可参照下面ÿ