前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实战项目——用户消费行为数据分析(三)

Python实战项目——用户消费行为数据分析(三)

作者头像
老虎也淘气
发布2024-01-30 14:57:48
1K0
发布2024-01-30 14:57:48
举报
文章被收录于专栏:Data分析

项目介绍,需求分析

项目介绍:

今天我们要对用户消费行为进行分析,用户消费行为数据分析项目旨在利用大量用户消费数据,通过数据挖掘和分析技术,深入了解用户在产品或服务上的消费行为模式和习惯。通过对数据的挖掘和分析,该项目可以帮助企业更好地了解其用户,优化产品或服务,提高用户满意度,增加用户忠诚度,并在竞争激烈的市场中获得优势

user_id:用户ID,order_dt:购买日期,order_products:购买产品数量,order_amount:购买金额 数据时间:1997年1月~1998年6月用户行为数据,约6万条

需求分析:

  1. 数据收集:项目的第一步是收集大量的用户消费数据。这些数据可以包括购买记录、浏览行为、搜索行为、点击率、用户反馈等。数据可以来自企业已有的数据库,也可以通过第三方数据提供商获得。
  2. 数据清洗与预处理:收集到的数据可能存在错误、缺失或重复项,需要进行数据清洗和预处理,确保数据的准确性和完整性,使其适合后续的分析工作。
  3. 数据探索性分析:在进行深入分析之前,需要对数据进行探索性分析,通过可视化和统计方法发现数据中的规律和趋势,发现潜在的模式和异常情况。
  4. 用户消费行为模式分析:利用数据挖掘技术,对用户的消费行为进行建模和分析,找出用户在购买产品或使用服务时的常见模式和习惯,例如购买的时间、频率、金额等。
  5. 用户群体划分:根据用户的消费行为和特征,将用户划分为不同的群体或细分市场。这有助于企业更好地了解不同群体的需求和偏好,针对性地推出营销策略。
  6. 用户留存和流失分析:分析用户的留存和流失情况,找出导致用户流失的原因,并采取措施提高用户的留存率。
  7. 个性化推荐系统:基于用户的消费行为模式和偏好,开发个性化推荐系统,向用户推荐符合其兴趣的产品或服务,提高销售和用户满意度。
  8. 可视化与报告:将分析结果以可视化的方式呈现,例如图表、报表和仪表盘,帮助企业管理层更直观地理解数据并做出决策。
  9. 数据保密与安全:在整个项目过程中,保障用户数据的隐私和安全,确保符合相关法律法规和企业内部的数据保护政策。
  10. 持续优化:数据分析是一个持续优化的过程,项目团队应与业务团队保持紧密合作,根据反馈和结果不断优化分析模型和推荐系统,确保项目的长期价值。

通过以上需求分析,用户消费行为数据分析项目将帮助企业深入了解用户需求,优化产品或服务,提高用户满意度和忠诚度,从而在竞争激烈的市场中取得竞争优势。

导入数据,初步分析数据

代码语言:javascript
复制
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
%matplotlib inline
plt.style.use('ggplot')  #更改绘图风格,R语言绘图库的风格
plt.rcParams['font.sans-serif'] = ['SimHei']
# 导入数据
columns = ['user_id','order_dt','order_products','order_amount']
df = pd.read_table('CDNOW_master.txt',names=columns,sep='\s+')  #sep:'\s+':匹配任意个空格
df.head()

分析输出结果可得:

  1. 日期格式需要转换
  2. 存在同一个用户一天内购买多次行为
代码语言:javascript
复制
df.describe()

3. 用户平均每笔订单购买2.4个商品,标准差2.3,稍微有点波动,属于正常。 然而75%分位数的时候,说明绝大多数订单的购买量都不多,围绕在2~3个产品左右; 4. 购买金额,反映出大部分订单消费金额集中在中小额,30~45左右

查看索引,数据类型。

代码语言:javascript
复制
df.info()

数据预处理

代码语言:javascript
复制
f['order_date'] = pd.to_datetime(df['order_dt'],format='%Y%m%d')

df['month'] = df['order_date'].astype('datetime64[M]')  #[M] :控制转换后的精度
df.head()
# df.info()

format参数:按照指定的格式去匹配要转换的数据列。 %Y:四位的年份1994 %m:两位月份05 %d:两位月份31 %y:两位年份94 %h:两位小时09 %M:两位分钟15 %s:两位秒 将order_date转化成精度为月份的数据列

用户整体消费趋势分析(按月份)

按月份统计产品购买数量,消费金额,消费次数,消费人数
代码语言:javascript
复制
plt.figure(figsize=(20,15)) #单位时英寸
# 每月的产品购买数量
plt.subplot(221)  #两行两列,占据第一个位置
df.groupby(by='month')['order_products'].sum().plot()  #默认折线图
plt.title('每月的产品购买数量')
# 每月的消费金额
plt.subplot(222)  #两行两列
df.groupby(by='month')['order_amount'].sum().plot()  #默认折线图
plt.title('每月的消费金额')
# 每月的消费次数
plt.subplot(223)  #两行两列
df.groupby(by='month')['user_id'].count().plot()  #默认折线图
plt.title('每月的消费次数')
# 每月的消费人数(根据user_id进行去重统计,再计算个数)
plt.subplot(224)  #两行两列
df.groupby(by='month')['user_id'].apply(lambda x:len(x.drop_duplicates())).plot()  #默认折线图
plt.title('每月的消费人数')

分析结果:

  • 图一可以看出,前三个月销量非常高,而以后销量较为稳定,并且稍微呈现下降趋势
  • 图二可以看出,依然前三个月消费金额较高,与消费数量成正比例关系,三月份过后下降严重,并呈现下降趋势,思考原因?1:跟月份有关,
  • 在我国,1,2,3月份处于春节前后。2.公司在1,2,3,月份的时候是否加大了促销力度
  • 图三可以看出,前三个月订单数在10000左右,后续月份的平均消费单数在2500左右
  • 图四可以看出,前三个月消费人数在8000~10000左右,后续平均消费消费在2000不到的样子
  • 总结:所有数据显示,97年前三月消费事态异常,后续趋于常态化

用户个体消费分析

用户消费金额,消费次数(产品数量)描述统计

代码语言:javascript
复制
user_grouped = df.groupby(by='user_id').sum()
print(user_grouped.describe())
print('用户数量:',len(user_grouped))
  • 从用户的角度:用户数量23570个,每个用户平均购买7个CD,但是中位数只有3,
    • 并且最大购买量为1033,平均值大于中位数,属于典型的右偏分布(替购买量<7的用户背锅)
  • 从消费金额角度:平均用户消费106,中位数43,并且存在土豪用户13990,结合分位数和最大值来看,平均数与75%分位数几乎相等,
  • 属于典型的右偏分布,说明存在小部分用户(后面的25%)高额消费(这些用户需要给消费金额<106的用户背锅,只有这样才能使平均数维持在106)
绘制每个用户的产品的购买量与消费金额散点图
代码语言:javascript
复制
df.plot(kind='scatter',x='order_products',y='order_amount')
  • 从图中可知,用户的消费金额与购买量呈现线性趋势,每个商品均价15左右
  • 订单的极值点比较少(消费金额>1000,或者购买量大于60),对于样本来说影响不大,可以忽略不记。
用户消费分布图
代码语言:javascript
复制
plt.figure(figsize=(12,4)) 
plt.subplot(121)
plt.xlabel('每个订单的消费金额')
df['order_amount'].plot(kind='hist',bins=50)  #bins:区间分数,影响柱子的宽度,值越大柱子越细。宽度=(列最大值-最小值)/bins
#消费金额在100以内的订单占据了绝大多数

plt.subplot(122)
plt.xlabel('每个uid购买的数量')
df.groupby(by='user_id')['order_products'].sum().plot(kind='hist',bins=50)
  • 图二可知,每个用户购买数量非常小,集中在50以内
  • 两幅图得知,我们的用户主要是消费金额低,并且购买小于50的用户人数占据大多数(在电商领域是非常正常的现象)
用户累计消费金额占比分析(用户的贡献度)

进行用户分组,取出消费金额,进行求和,排序,重置索引

代码语言:javascript
复制
user_cumsum = df.groupby(by='user_id')['order_amount'].sum().sort_values().reset_index()
user_cumsum

每个用户消费金额累加

代码语言:javascript
复制
# 累加器举例:
# a = [1,2,3,4,5,6,7]
# print(np.cumsum(a))
user_cumsum['amount_cumsum'] = user_cumsum['order_amount'].cumsum()
user_cumsum.tail()
代码语言:javascript
复制
amount_total = user_cumsum['amount_cumsum'].max() #消费金额总值
user_cumsum['prop'] = user_cumsum.apply(lambda x:x['amount_cumsum']/amount_total,axis=1)  #前xx名用户的总贡献率
user_cumsum.tail()
代码语言:javascript
复制
user_cumsum['prop'].plot()

由图分析可知,前20000名用户贡献总金额的40%,剩余3500名用户贡献了60%。(2/8原则)

用户消费行为

1.首购时间
代码语言:javascript
复制
#用户分组,取最小值,即为首购时间,
# A  1997-1-1  
# B  1997-1-1  
# 1997-1-1   ?(2个)
df.groupby(by='user_id')['order_date'].min().value_counts().plot()

由图可知,首次购买的用户量在1月1号~2月10号呈明显上升趋势,后续开始逐步下降,猜测:有可能是公司产品的推广力度或者价格调整所致

2.最后一次购买时间
代码语言:javascript
复制
df.groupby(by='user_id')['order_date'].max().value_counts().plot()
  • 大多数用户最后一次购买时间集中在前3个月,说明缺少忠诚用户。
  • 随着时间的推移,最后一次购买商品的用户量呈现上升趋势,猜测:这份数据选择是的前三个月消费的用户在后面18个月的跟踪记录

用户分层

1.构建RFM模型分析并可视化

代码语言:javascript
复制
#透视表的使用(index:相当于groupby,values:取出的数据列,aggfunc:key值必须存在于values列中,并且必须跟随有效的聚合函数)
rfm = df.pivot_table(index='user_id',
                    values=['order_products','order_amount','order_date'],
                    aggfunc={
                        'order_date':'max',# 最后一次购买
                        'order_products':'sum',# 购买产品的总数量
                        'order_amount':'sum'  #消费总金额
                        })
rfm.head()

用每个用户的最后一次购买时间-日期列中的最大值,最后再转换成天数,小数保留一位

代码语言:javascript
复制
rfm['R'] = -(rfm['order_date']-rfm['order_date'].max())/np.timedelta64(1,'D')  #取相差的天数,保留一位小数
rfm.rename(columns={'order_products':'F','order_amount':'M'},inplace=True)
rfm.head()

RFM计算方式:每一列数据减去数据所在列的平均值,有正有负,根据结果值与1做比较,如果>=1,设置为1,否则0

代码语言:javascript
复制
def rfm_func(x):  #x:分别代表每一列数据
    level = x.apply(lambda x:'1' if x>=1 else '0')
    label = level['R'] + level['F'] + level['M']  #举例:100    001
    d = {
        '111':'重要价值客户',
        '011':'重要保持客户',
        '101':'重要发展客户',
        '001':'重要挽留客户',
        '110':'一般价值客户',
        '010':'一般保持客户',
        '100':'一般发展客户',
        '000':'一般挽留客户'
        
    }
    result = d[label]
    return result
# rfm['R']-rfm['R'].mean()
rfm['label'] = rfm[['R','F','M']].apply(lambda x:x-x.mean()).apply(rfm_func,axis =1)
rfm.head()

客户分层可视化

代码语言:javascript
复制
for label,grouped in rfm.groupby(by='label'):
#     print(label,grouped)
    x = grouped['F']  # 单个用户的购买数量
    y = grouped['R']  #最近一次购买时间与98年7月的相差天数
    plt.scatter(x,y,label=label)
plt.legend()  #显示图例
plt.xlabel('F')
plt.ylabel('R')

2.新老,活跃,回流用户分析

  • 新用户的定义是第一次消费。
  • 活跃用户即老客,在某一个时间窗口内有过消费。
  • 不活跃用户则是时间窗口内没有消费过的老客。
  • 回流用户:相当于回头客的意思。
  • 用户回流的动作可以分为自主回流与人工回流,自主回流指玩家自己回流了,而人工回流则是人为参与导致的。
代码语言:javascript
复制
pivoted_counts = df.pivot_table(
                index='user_id',
                columns ='month',
                values = 'order_dt',
                aggfunc = 'count'
).fillna(0)
pivoted_counts.head()

#由于浮点数不直观,并且需要转成是否消费过即可,用0、1表示

代码语言:javascript
复制
df_purchase = pivoted_counts.applymap(lambda x:1 if x>0 else 0)
# apply:作用与dataframe数据中的一行或者一列数据
# applymap:作用与dataframe数据中的每一个元素
# map:本身是一个series的函数,在df结构中无法使用map函数,map函数作用于series中每一个元素的
df_purchase.head()
代码语言:javascript
复制
def active_status(data): #data:每一行数据(共18列)
    status = [] #存储用户18个月的状态(new|active|unactive|return|unreg)
    for i in range(18):
        #判断本月没有消费==0
        if data[i] ==0:
            if len(status)==0: #前几个月没有任何记录(也就是97年1月==0)
                status.append('unreg')  
            else:#之前的月份有记录(判断上一个月状态)
                if status[i-1] =='unreg':#一直没有消费过
                    status.append('unreg')
                else:#上个月的状态可能是:new|active|unative|reuturn
                    status.append('unactive')
        else:#本月有消费==1
            if len(status)==0:
                status.append('new') #第一次消费
            else:#之前的月份有记录(判断上一个月状态)
                if status[i-1]=='unactive':
                    status.append('return') #前几个月不活跃,现在又回来消费了,回流用户
                elif  status[i-1]=='unreg':
                    status.append('new') #第一次消费
                else:#new|active
                    status.append('active') #活跃用户
            
    return pd.Series(status,df_purchase.columns) #值:status,列名:18个月份

purchase_states = df_purchase.apply(active_status,axis=1) #得到用户分层结果
purchase_states.head()

把unreg状态用nan替换

代码语言:javascript
复制
purchase_states_ct = purchase_states.replace('unreg',np.NaN).apply(lambda x:pd.value_counts(x))
purchase_states_ct.head()

数据可视化,面积图

代码语言:javascript
复制
purchase_states_ct.fillna(0).T.plot.area(figsize=(12,6))  #填充nan之后,进行行列变换
  • 由图可知:灰色区域是不活跃用户,占比较大
  • 前三个月新用户,还是活跃用户呈现了上升趋势,猜测由于活动造成的影响
  • 3月份过后,紫色回流用户,红色活跃用户,都呈现下降趋势,并且趋于平稳状态
  • 3月份过后,新用户量几乎没有大量增加

每月中回流用户占比情况(占所有用户的比例)

代码语言:javascript
复制
plt.figure(figsize=(12,6))
rate = purchase_states_ct.fillna(0).T.apply(lambda x:x/x.sum(),axis=1)
plt.plot(rate['return'],label='return')
plt.plot(rate['active'],label='active')
plt.legend()
  • 由图可知,前3个月,活跃用户占比比较大,维持在7%左右,而回流用户比例在上升,由于new用户还没有足够时间变成回流用户
  • 4月份过后,不论是活跃用户,还是回流用户都呈现出下降趋势,但是回流用户依然高于活跃用户。

用户的购买周期

shift函数:将数据移动到一定的位置

代码语言:javascript
复制
shift函数:将数据移动到一定的位置
data1 = pd.DataFrame({
    'a':[0,1,2,3,4,5],
    'b':[5,4,3,2,1,0]
})
data1.shift(axis=0) #整体向下移动一个位置(默认值:axis=0)
data1.shift(axis=1)

计算购买周期(购买日期的时间差值)

代码语言:javascript
复制
order_diff = df.groupby(by='user_id').apply(lambda x:x['order_date']-x['order_date'].shift()) #当前订单日期-上一次订单日期
order_diff.describe()
代码语言:javascript
复制
(order_diff/np.timedelta64(1,'D')).hist(bins = 20) #影响柱子的宽度,  每个柱子的宽度=(最大值-最小值)/bins
  • 得知:平均消费周期为68天
  • 大多数用户消费周期低于100天
  • 呈现典型的长尾分布,只有小部分用户消费周期在200天以上(不积极消费的用户),可以在这批用户消费后3天左右进行电话回访后者短信
  • 赠送优惠券等活动,增大消费频率

用户生命周期

#计算方式:用户最后一次购买日期(max)-第一次购买的日期(min)。如果差值==0,说明用户仅仅购买了一次

代码语言:javascript
复制
user_life = df.groupby('user_id')['order_date'].agg(['min','max'])
(user_life['max']==user_life['min']).value_counts().plot.pie(autopct='%1.1f%%') #格式化成1为小数
plt.legend(['仅消费一次','多次消费'])

一半以上的用户仅仅消费了一次,说明运营不利,留存率不好

代码语言:javascript
复制
(user_life['max']-user_life['min']).describe()  #生命周期分析
  • 用户平均生命周期为134天,但是中位数==0,再次验证大多数用户消费了一次,低质量用户。
  • 75%分位数以后的用户,生命周期>294天,属于核心用户,需要着重维持。
  • 前三个月的新用户数据,所以分析的是这些用户的生命周期

绘制所有用户生命周期直方图+多次消费

代码语言:javascript
复制
plt.figure(figsize=(12,6))
plt.subplot(121)
((user_life['max']-user_life['min'])/np.timedelta64(1,'D')).hist(bins=15)
plt.title('所有用户生命周期直方图')
plt.xlabel('生命周期天数')
plt.ylabel('用户人数')

plt.subplot(122)
u_1 = (user_life['max']-user_life['min']).reset_index()[0]/np.timedelta64(1,'D')
u_1[u_1>0].hist(bins=15)
plt.title('多次消费的用户生命周期直方图')
plt.xlabel('生命周期天数')
plt.ylabel('用户人数')
  • 对比可知,第二幅图过滤掉了生命周期==0的用户,呈现双峰结构
  • 虽然二图中还有一部分用户的生命周期趋于0天,但是比第一幅图好了很多,虽然进行了多次消费,但是不成长期
  • 来消费,属于普通用户,可针对性进行营销推广活动
  • 少部分用户生命周期集中在300~500天,属于我们的忠诚客户,需要大力度维护此类客户

复购率和回购率分析

复购率分析

计算方式:在自然月内,购买多次的用户在总消费人数中的占比(若客户在同一天消费了多次,也称之复购用户)
消费者有三种:消费记录>=2次的;消费中人数;本月无消费用户;
复购用户:1 非复购的消费用户:0 自然月没有消费记录的用户:NAN(不参与count计数)
代码语言:javascript
复制
purchase_r = pivoted_counts.applymap(lambda x: 1 if x>1 else np.NaN  if x==0 else 0)
purchase_r.head()
#purchase_r.sum() :求出复购用户
#purchase_r.count():求出所有参与购物的用户(NAN不参与计数)
(purchase_r.sum()/purchase_r.count()).plot(figsize=(12,6))
  • 前三个月复购率开始上升,后续趋于平稳维持在20%~22%之间。
  • 分析前三个月复购率低的原因,可能是因为大批新用户仅仅购买一次造成的。

回购率分析

计算方式:在一个时间窗口内进行了消费,在下一个窗口内又进行了消费
代码语言:javascript
复制
def purchase_back(data):
    status = [] #存储用户回购率状态
    #1:回购用户   0:非回购用户(当前月消费了,下个未消费)   NaN:当前月份未消费
    for i in range(17):
        #当前月份消费了
        if data[i] == 1:
            if data[i+1]==1:
                status.append(1) #回购用户
            elif data[i+1] == 0: #下个月未消费
                status.append(0)
        else: #当前月份未进行消费
            status.append(np.NaN)
    status.append(np.NaN) #填充最后一列数据
    return pd.Series(status,df_purchase.columns)

purchase_b = df_purchase.apply(purchase_back,axis=1)
purchase_b.head()
回购率可视化
代码语言:javascript
复制
plt.figure(figsize=(20,4))
plt.subplot(211)
#回购率
(purchase_b.sum() / purchase_b.count()).plot(label='回购率')
#复购率
(purchase_r.sum()/purchase_r.count()).plot(label='复购率')
plt.legend()
plt.ylabel('百分比%')
plt.title('用户回购率和复购率对比图')
回购人数与购物总人数
代码语言:javascript
复制
plt.subplot(212)
plt.plot(purchase_b.sum(),label='回购人数')
plt.plot(purchase_b.count(),label='购物总人数')
plt.xlabel('month')
plt.ylabel('人数')
plt.legend()
  • 回购率可知,平稳后在30%左右,波形性稍微较大
  • 复购率低于回购率,平稳后在20%左右,波动小较小 前三个月不困是回购还是复购,都呈现上升趋势,说明新用户需要一定时间来变成复购或者回购用户
  • 结合新老用户分析,新客户忠诚度远低于老客户忠诚度。
  • 前三个月购物总人数远远大于回购人数,主要是因为很多新用户在1月份进了首次购买
  • 三个月后,回购人数和购物总数开始稳定,回购人数稳定在1000左右,购物总人数在2000左右。

结论

1.整体趋势:按年的月份趋势销量和销售额在1-3月份相对极高,然后骤降,原因可能跟这段时间的大力促销或与商品的季度属性有关。2.用户个体特征:每笔订单的金额和商品购买量都集中在区间的低段水平,都是小金额小批量进行购买,此类交易群体,可在丰富产品线和增加促销活动提高转换率和购买率。 3.大部分用户的消费总额和购买总量都集中刚在低段◇长尾分布◇这个跟用户需求有关,可以对商品进行多元文化价值的赋予,增强其社交价值属性,提高用户的价值需求。 4.用户的消费周期:有二次以上消费的用户,平均68天,所以在50天到60天期间,应该对这批用户进行刺激召回,细致点,比如10天回复满意度,30天发放优惠券,55天的时候提醒优惠券的使用。 5.用户的生命周期:有二次及以上消费的用户的平均生命周期是276天。用户的生命周期分别在20天内与400至500天间,应该在20天内对客户进行引导,促进其再次消费并形成消费习惯◇延长其生命周期;在100至400天的用户,也要根据其特点推出有针对性的营销活动,引导其持续消费。 6..新客户的复购率约为12%,老客户的复购率在20%左右;新客户的回购率在15%左右,老客户的回购率在30%左右,需要营销策略积极引导其再次消费及持续消费。 7.用户质量:用户个体消费有一定规律性,大部分用户的消费集中在2000以下,用户消费反应了2/8法则,消费排名前20%的用户贡献了80%的消费额。所以说,狠抓高质量用户是万古不变的道理,这些高质量客户都是"会员"类型,需要专门为会员优化购物体验,比如专线接听、特殊优惠等等。

方法总结:

1.针对用户进行按照月份做整体和个体分析,主要分析维度是人数,消费金额,购买量 2.消费分析:首购时间,最后一次购买时间,相邻两个购物时间的间隔,用户分层( RFM 模型+数据透视表),分析维度主要是新用户,活跃用户,不活跃用户流失分析,回流用户占比 3.复购率和回购率进行分析

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 项目介绍,需求分析
    • 项目介绍:
      • 需求分析:
      • 导入数据,初步分析数据
      • 数据预处理
        • 用户整体消费趋势分析(按月份)
          • 按月份统计产品购买数量,消费金额,消费次数,消费人数
      • 用户个体消费分析
        • 用户消费金额,消费次数(产品数量)描述统计
          • 绘制每个用户的产品的购买量与消费金额散点图
          • 用户消费分布图
          • 用户累计消费金额占比分析(用户的贡献度)
        • 用户消费行为
          • 1.首购时间
          • 2.最后一次购买时间
      • 用户分层
        • 1.构建RFM模型分析并可视化
          • 2.新老,活跃,回流用户分析
          • 用户的购买周期
          • 用户生命周期
            • 绘制所有用户生命周期直方图+多次消费
            • 复购率和回购率分析
              • 复购率分析
                • 计算方式:在自然月内,购买多次的用户在总消费人数中的占比(若客户在同一天消费了多次,也称之复购用户)
                • 消费者有三种:消费记录>=2次的;消费中人数;本月无消费用户;
                • 复购用户:1 非复购的消费用户:0 自然月没有消费记录的用户:NAN(不参与count计数)
              • 回购率分析
                • 计算方式:在一个时间窗口内进行了消费,在下一个窗口内又进行了消费
                • 回购率可视化
                • 回购人数与购物总人数
            • 结论
            • 方法总结:
            相关产品与服务
            短信
            腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档