一、指标定义

  在单位时间窗口内,多次(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
SELECTDATE_FORMAT( paidtime, "%Y-%m" ) AS 月份,userid,COUNT( userid ) AS 消费次数
FROMorder_info
WHEREispaid = '已支付'
GROUP BYDATE_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 复购率
FROMorder_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

四、提升策略和方法

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

Pandas数据分析实战 — 复购率指标计算相关推荐

  1. 如何用sql计算回购率、复购率指标

    这6道sql题都很好,建议都过一遍: 考察知识点: 回购率.复购率的理解 子查询 inner join 重点推荐第2题,第5题,第6题 理解需求.理解题意 (★★★★★) datediff ceil ...

  2. MySQL中用户订单复购率的计算

    1.项目需求(计算复购率) 订单表中有用户ID.订单金额.每笔订单的下单时间等信息,需要统计每个月在接下来几个月用户复购情况 // 创建数据表 create table orders( order_i ...

  3. sql复购率计算多种方法

    注:这个复购率算的更加细致,比其他的算法更加精妙,能看懂的不多,好好体会! 说明:这是一个订单的复购率,计算的时候单独提取了n天复购的用户明细 关键sql说明: D:取得用户下的第一单订单的时间,以及 ...

  4. mysql复购率_MySQL_复购回购率

    指标解释 如何计算复购率/回购率 计算方法一:复购的人 复购率 = 单位时间内购买次数大于1的人/所有购买的人 例如: 一段时间内,10个人中有3个人购买2次,这3个人中有一个人又购买了一次,累计复购 ...

  5. 写个数仓吧(15)品牌复购率——ADS层

    建表语句 hive (gmall)> drop table ads_sale_tm_category1_stat_mn; create table ads_sale_tm_category1_s ...

  6. 成都榆熙:复购率是什么?商家可以提升吗?

    很多商家随着拼多多店铺的发展,也开始意识到用户复购率的重要性,越来越多的商家开始想要提升店铺复购率,那么关于复购率这个东西,你又知道多少呢?一起和榆熙电商小编来了解一下吧. 一.什么是复购率? &qu ...

  7. java统计excel数据_数据分析实战——EXCEL实现复购率计算

    这是数据分析实战的第三篇(复购率计算篇),本文提供真实数据(脱敏),并梳理复购率计算思路和技巧,通过15分钟的阅读和实践,读者即可根据自己的订单数据灵活计算业务涉及到的复购率了.(实战数据在文末) 相 ...

  8. pythonmysql数据分析 tableau_python执行mysql 计算复购率+pyechart+Excel+Tableau绘制双Y轴图...

    现有某超市的订单数据,内容如下: 先求每个会员在每个月的订单数 sql = ''' -- select MemberID, count(SheetID) AS 每个会员的订单数,substring(S ...

  9. Pyspark让pandas特征工程代码在集群上飞起来——天猫复购率baseline

    Pyspark让pandas特征工程代码在集群上飞起来--天猫复购率baseline 环境与数据准备 导包 创建spark应用 第一种特征工程方式:pyspark.pandas.dataframe 第 ...

最新文章

  1. Python3序列解包
  2. 机器学习-特征处理/归一化/标准化/降维03
  3. redis实践的一点思路,关于支付回调
  4. linux需要什么基础,学linux需要什么基础?
  5. 程序员心声:我为什么偏爱苹果电脑和Mac OS X
  6. 使用函数输出水仙花数
  7. python私有仓库_创建git私有仓库
  8. c++类的对象如何判断为空以及指针的赋值
  9. 关于使用CKplayer播放m3u8视频出现没有视频的问题分析
  10. 电音插件auto_自动电音基调查询软件助手完美支持32_64bit系统所有电音插件
  11. 苹果iPad mini 5蜂窝数据版上架:3896元起
  12. 天牛须和贪心算法_基于天牛须搜索的粒子群优化算法求解投资组合问题
  13. base64格式转为二进制流
  14. 电瓶车罚款不交后果如何
  15. 好的重疾险原来长这样!你被骗了这么多年...
  16. On the Opportunities and Risks of Foundation Models- APPLICATIONS
  17. 数据结构 | 顺序表
  18. 详细讲解D3D8里面的2D图形编程(转)
  19. 18.NET高级开发之ORM-EF6
  20. win10 桌面的的文件都不见了 提示不注销保存都文件都为临时_无网也能传文件?!Win10 自带的“就近共享”功能这么腻害你知道吗?...

热门文章

  1. realme q2和realme q2pro的区别
  2. 迟到的小熊 计算机画图画教案,课题(5、下):《迟到的小熊—认识计算机画图软件》第一周...
  3. C# 事件订阅、退订简单实现原理
  4. Outlook2013邮件中的链接打不开提示组织策略阻止
  5. uniapp全网最简单实现夜间模式
  6. 怎么取消计算机add2,计算器上的F,4,2,0,ADD2是什么意思
  7. 图解数据结构:栈和队列
  8. visio2013画图像金字塔示意图
  9. Git修改用户名、邮箱和密码
  10. 2022-2028年全球与中国鱼饲料行业深度分析