select * from pdd_data limit 1000;
order by语句可以让数字按照我们希望的升序或者降序的方式排列。
但如果数据不是数字呢?是男性或女性、已婚或未婚这样的数据我们又应该怎么办呢?我们怎么知道男性有多少、女性有多少呢?
那这个时候就需要group by登场了,但它一个还不够、往往需要sum求和函数跟它一起
业务问题:不同性别使用优惠券的情况如何?
代码
代码解释
- 格式:
- 这里的used和sex都是表格里的字段名,用select from语句获取数据
- sum的作用就是把字段下面的数据加总,使用格式是sum(要加总的字段),相当于你在Excel表格里对一列数据求和,as后面的total_used是我们给求和之后数据的命名
- group by sex 给性别分组,sum和group by往往是一起出现的。
代码结果
- 应用它解决问题吧!
为什么有的用户没领优惠券,有的用户没有使用优惠券,使用优惠券的用户有什么特征呢?
这里涉及到几个关键字段,checked、used,不过优惠券的使用数据只看这两个字段的话可能会有一个小问题:
既然用户是从看到优惠券推送、浏览信息、领取优惠券这么多环节,最后才到使用优惠券,如果其他pushed、viewed等等字段我们都不看的话,假设最后用户没有使用,我们不能排除其他字段的数据没有出现问题,比如这个渠道用户压根没收到推送消息,或者可以收到推送但是领取的页面打不开等等。
所以pushed、viewed、checked、used,我们都要加进来一起分析。
我们可以尝试两个字段reg_channel和coupon_type,看看不同的注册渠道和优惠券种类,对用户的优惠券使用有什么影响。
(1)业务问题:优惠券的使用在不同渠道上的情况如何?
代码
注意,最后一句sum结尾没有逗号噢,如果加上会出现什么,你可以试着运行一下!
代码结果
从结果来看,从APP渠道注册的用户转化效率最高,而H5渠道的用户优惠券使用明显很低,可以初步推测,H5页面的功能可能存在什么问题。
(2)业务问题:优惠券的额度对用户使用优惠券有没有影响?
代码
代码结果
两种优惠券因为推送的数量差别很大,所以我们可以先计算一下优惠券使用的转化率是多少。100-10是6977/54119=12.9%,200-20是9%,我们会发现,100-10额度的优惠券使用人数高于200-20额度。
(3)业务问题:性别对优惠券使用有没有影响?
代码
代码结果
结果发现,男性的优惠券使用情况远高于女性。
通过上面用SQL的操作,我们发现,用户的注册渠道、收到优惠券的金额以及用户性别和最终的消费可能有相关性,到底是不是这样呢?我们就用Python,通过数据可视化的方式,一起来进一步验证吧
import pandas as pd import seaborn as sns %matplotlib inline
- 调包
pdd=pd.read_csv('pdd_data.csv')
- 读取数据
pdd.info()
发现
- 一共有9万多行数据
- 一共有11列
- 没有缺失值
- 有4个变量不是数字型变量
pdd=pd.get_dummies(pdd)
- 把非数字型变量变成数字型变量
发生了什么?
pdd.info()
发现
- 原来的非数字型变量拆成了多个变量
- 最后一列显示现在都是数字型变量了
数据可视化
STEP 1 先计算相关性
pdd.corr()[['gmv']]
* python中表示单独一列需要用两对中括号
STEP 2 绘制热力图
sns.heatmap(pdd.corr()[['gmv']])
发现
- 上个月是否用过优惠券对成交额的影响最大
- 在APP注册的用户成交额更高
- 已婚男性比未婚女性的成交额高
- 优惠券的类型影响不明显
业务结论
why
- 婚姻状况、性别、注册渠道和过去优惠券的使用都和最终的成交额有一定的相关度
how
重点关注,针对性策划活动
- 已婚男性
- 关注通过APP渠道注册的用户
- 过去一个月使用过优惠券的用户
全部评论
(0) 回帖