Pandas数据分析实战 — 复购率指标计算

一、指标定义

  在单位时间窗口内,多次(2次及以上)消费的用户在总消费用户的占比。

二、计算方法

①按人数计算

  所有购买过产品的顾客,以每个人为独立单位重复购买产品的次数,比如有10个客户购买了产品,5个产生了重复购买,则重复购买率为50%。

②按交易次数计算

  某月内,一共产生了100笔交易,其中有20个人有了二次购买,这20人中的10个人又有了三次购买,则重复购买次数为30次,重复购买率为30%。

  一般按第1中计算

三、实例操作——按人数计算

订单信息表order_info相关字段:

  • userID:用户ID

  • paidtime:支付时间

  • ispaid:支付状态(非必要字段)

注意:一个用户可能在同一天消费多次

①SQL求解

解题步骤:

a、先求出【用户时间窗口内的用户消费次数表】order_times

CREATE OR REPLACE VIEW order_times AS 
SELECT
    DATE_FORMAT( paidtime, "%Y-%m" ) AS 月份,
    userid,
    COUNT( userid ) AS 消费次数 
FROM
    order_info 
WHERE
    ispaid = '已支付' 
GROUP BY
    DATE_FORMAT( paidtime, "%Y-%m" ),
    userid

 筛选出已支付的订单记录,对用户和时间窗口进行分组,时间窗口需要根据实际需求进行一定转化处理(这里时间窗口为月份)。

b、时间窗口内【消费次数>1的人数】/【总消费人数】

SELECT
    月份,
    COUNT( DISTINCT userid ) AS 消费人数,
    COUNT(CASE WHEN `消费次数` > 1 THEN 1 ELSE NULL END) AS 复购人数,
    COUNT(CASE WHEN `消费次数` > 1 THEN 1 ELSE NULL END)/COUNT( DISTINCT userid ) AS 复购率
FROM
    order_times
GROUP BY
    月份;

  按时间窗口分组,再用case when语句求出【消费次数>1的人数】

②python求解

解题步骤:

a、导入数据

col = ['orderid','userid','ispaid','price','paidtime']
df = pd.read_csv(r'file_path/order_info_utf.csv',encoding='utf-8',names=col)
df.head()

b、新增时间窗口字段

df['month'] = df['paidtime'].str[:7]
df.head()

c、筛选已支付订单记录

df = df[df['ispaid']=='已支付']
df.head()

d、数据透视,获取【时间窗口内的用户消费次数透视表】

# 用户ID为索引,时间窗口为列名称,count统计消费次数,无消费记录用0填充
order_counts = df.pivot_table(index='userid',columns='month',values='price',aggfunc='count').fillna(0)
order_counts.head()

e、计算复购率

month_buy_rate = pd.DataFrame((order_counts>1).sum()/(order_counts>=1).sum(),columns=['复购率'])
month_buy_rate['消费人数'] = (order_counts>=1).sum()
month_buy_rate['复购人数'] = (order_counts>1).sum()
month_buy_rate

四、提升策略和方法

  复购率变高,也就是用户多消费。想让用户多消费,莫非就是自身产品实力过硬,或者产品不咋滴,但是套路足,让用户觉得自己产品“性价比”高,值得再次购买。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金戈鐡馬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值