RFM电商数据分析(4)

本文纯属复现和鲸社区大佬Phoenix的分析过程,及大部分代码,此处贴上地址:
原文地址

s26 = s25_data2[s25_data2['月新老客户']=='新客户'].groupby('month').agg(新用户数量=('月新老客户','count'),新用户销量=('buy_count','sum'),新用户销售额=('amount','sum'))
s26['新用户数量环比增长'] = s26['新用户数量'].diff()
s26['新用户数量环比增长率%'] = s26['新用户数量'].pct_change() * 100
s26['新用户销量环比增长'] = s26['新用户销量'].diff()
s26['新用户销量环比增长率%'] = s26['新用户销量'].pct_change() * 100
s26['新用户销售额环比增长'] = s26['新用户销售额'].diff()
s26['新用户销售额环比增长率%'] = s26['新用户销售额'].pct_change() * 100
s26

请添加图片描述
R:最近一次消费(Recency)
F:消费频率(Frequency)
M:消费金额(Monetary)
RFM分析:
此处建议一步一停,手动查看数据

rfm_0 = df.groupby(['user_id','date']).agg(消费金额=('amount','sum')).reset_index()
rfm_1=rfm_0.groupby('user_id').agg(最后消费日期=('date','max'),F=('date','count'),M=('消费金额','sum'))
rfm_1['最后消费日期'] = pd.to_datetime(rfm_1['最后消费日期'])
rfm['R'] = (rfm['最后消费日期'].apply(lambda x:rfm['最后消费日期'].max()-x)).dt.days
rfm = rfm.reset_index()
rfm['user_id']=rfm['user_id'].astype('object')
rfm['R']=rfm['R'].astype('int64')
rfm

请添加图片描述

rfm2 = rfm[['R','F','M']].reset_index(drop=True)
rfm2

请添加图片描述
定义RFM模型:
‘111’:‘重要价值客户’, ‘011’:‘重要保持客户’, ‘101’:‘重要挽留客户’
‘001’:‘重要发展客户’, ‘110’:‘一般价值客户’, ‘010’:‘一般保持客户’
‘100’:‘一般挽留客户’, ‘000’:‘一般发展客户’ 高于平均值则即为1

def rfm_func(x):
    level = x.map(lambda x :'1' if x >= 0 else '0')
    label = level.R + level.F + level.M
    d = {
        '111':'重要价值客户',
        '011':'重要保持客户',
        '101':'重要挽留客户',
        '001':'重要发展客户',
        '110':'一般价值客户',
        '010':'一般保持客户',
        '100':'一般挽留客户',
        '000':'一般发展客户'
    }
    result = d[label]
    return result
rfm2['label'] = rfm2.apply(lambda x : x - x.mean()).apply(rfm_func, axis = 1)
rfm2

请添加图片描述

rfm2.to_csv('RFM.csv')
# 保存数据
rfm2['label'].value_counts()

请添加图片描述
用户画像:

# 统计用户购买频率最高的时间、类别、品牌
user_p1=df.groupby('user_id')['week'].agg(lambda x:x.mode().values[0])
user_p2=df.groupby('user_id')['hour'].agg(lambda x:x.mode().values[0])
user_p3=df.groupby('user_id')['category_code'].agg(lambda x:x.mode().values[0])
user_p4=df.groupby('user_id')['brand'].agg(lambda x:x.mode().values[0])
user_p5=df.groupby('user_id').agg(buy_count=('buy_count','sum'))
user_p6=df.groupby('user_id').agg(amount=('amount','sum'))
user_p=pd.concat([user_p1,user_p2,user_p3,user_p4,user_p5,user_p6], axis=1).reset_index()
user_p

请添加图片描述

user_p['age']=df.age
user_p['sex']=df.sex
user_p['local']=df.local
user_p=pd.merge(user_p,rfm,how='inner')
bins1=[0,3,10,20,200]
labels=['低频消费者','中频消费者','高频消费者','超高频狂热消费者']
user_p['消费频次']=pd.cut(x=user_p.F,bins=bins1,labels=labels)
user_p.head()

请添加图片描述

bins2=[0,150,500,2500,200000]
labels2=['低消费用户','中消费用户','高消费用户','超高狂热消费者']
user_p['消费金额']=pd.cut(x=user_p.M,bins=bins2,labels=labels2)
user_p['周消费喜好']=user_p['week'].apply(lambda x: '喜欢在周' + str(x) + '购物')
user_p['小时消费喜好']=user_p['hour'].apply(lambda x: '喜欢在' + str(x) + '点购物')
user_p['喜欢购买类别']=user_p['category_code'].apply(lambda x: '购买过' + str(x))
user_p['品牌偏好']=user_p['brand'].apply(lambda x: '喜欢' + str(x)+'品牌')
user_p['年龄']=user_p['age'].apply(lambda x: str(x) + '岁')
user_p['最近购买时间']=user_p['R'].apply(lambda x: '最后消费在' + str(x) + '天前')

随机取个例子

user_p.iloc[80180]

请添加图片描述

user_p.to_csv('./profile.csv',index=False)
# 保存数据,养成有成果就保存的习惯!!!
text = user_p.iloc[80180].to_list()[14:]
text

请添加图片描述

# 为了设置云图,随机zip数据
dic=dict(zip(text,[15,40,18,266,254,55,77,4]))
from pyecharts import options as opts
from pyecharts.charts import WordCloud
x=[z for z in dic.items()]
def charts_user_p():
    p_user_p=(
        WordCloud(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
        .add("",x, word_size_range=[12, 55])
        .set_global_opts(title_opts=opts.TitleOpts(title="用户画像"))
        
    )
    return p_user_p
charts_user_p().render_notebook()

请添加图片描述
本次数据分析到此结束,注释较少,思路不够清晰,希望读者可以重新捋一遍思路
最后,非常感谢原作者Phoenix的授权,非常感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于RFM模型的电商零售数据分析是指通过对顾客的最近购买时间(Recency)、购买频率(Frequency)和购买金额(Monetary)进行综合评估,对顾客进行划分和分析,以便针对不同的顾客采取相应的营销策略。 首先,通过对电商零售数据的RFM指标进行计算,可以得到每个顾客的RFM得分,这些得分反映了顾客在购买行为上的表现。然后,可以根据RFM得分将所有顾客分为不同的等级,如重要客户、潜在高价值客户、一般客户和低价值客户等。 其次,对于重要客户,电商可以针对性地提供更加个性化和高价值的服务,如独享折扣、VIP礼遇、定制化需求满足等,以提高他们的忠诚度和购买频率。 对于潜在高价值客户,电商可以通过精准广告投放、提供专属优惠码等方式,吸引他们成为实际的高价值客户。 对于一般客户,电商可以通过提供一些基本的会员权益,如免费配送、生日特权等,激发他们的购买欲望,同时也提高他们的忠诚度。 对于低价值客户,电商可以通过促销活动、打折等方式吸引他们重新购买,或者通过精细化营销策略,将其转化为高价值客户。 此外,通过RFM模型的数据分析,还可以发现购买时间、购买频率和购买金额之间的关系,找到不同类型的顾客在这些指标上的差异,并据此进行精细化的目标市场划分,更好地满足顾客需求。 综上所述,基于RFM模型的电商零售数据分析可以帮助电商更好地了解和管理顾客,制定个性化的营销策略,提高销售业绩和顾客满意度。 ### 回答2: 基于RFM模型的电商零售数据分析是一种常见的方法,用于评估和细分客户群体。 首先,RFM模型代表了最近购买(Recency)、购买频率(Frequency)和购买金额(Monetary)这三个指标。这些指标可以帮助电商零售商了解客户的购买行为和价值。 通过分析最近购买的时间,我们可以了解客户的活跃度和忠诚度。购买频率可以告诉我们客户的购买行为习惯,例如他们是经常购买还是偶尔购买。购买金额可以揭示客户的消费水平和偏好。 利用RFM模型,我们可以将客户细分为不同的群体。例如,我们可以识别出高价值客户,即最近购买、购买频率和购买金额都高的客户。这些客户通常是电商零售商的重要利润来源。另一方面,低价值客户则可能是需要关注的潜在客户。 通过深入分析RFM模型,我们可以得出以下结论:1)购买频率是提高客户价值的关键因素,因为它可以促使客户不断回购和增加购买次数;2)最近购买是与客户忠诚度直接相关的因素,因为较长时间没有购买可能表示客户对该品牌或产品的兴趣下降;3)购买金额与客户的消费能力和购买行为相关,因此对于客户的细分和个性化推荐非常重要。 综上所述,基于RFM模型的电商零售数据分析可以帮助电商零售商更好地了解客户,并制定相应的营销策略,提高客户忠诚度和购买行为,从而实现销售增长和利润提升。 ### 回答3: RFM模型是一种常用的电商零售数据分析模型,它基于顾客的最近购买时间(Recency)、购买频率(Frequency)和购买金额(Monetary)三个维度进行分析,可以帮助企业识别出高价值的顾客群体。 首先,通过对顾客最近一次购买时间的分析,可以确定哪些顾客是近期活跃的,比如最近3个月内购买过商品的顾客,这些顾客具有较高的购买潜力和忠诚度,可以进行精准的市场推广和个性化营销。 其次,通过对顾客购买频率的分析,可以识别出经常购买的忠诚客户和不太活跃的潜在客户。经常购买的忠诚客户可以通过专属折扣、会员权益等方式进行奖励和留存,而不太活跃的潜在客户可以通过精准的优惠券、活动邀请等方式进行再度唤回。 最后,通过对顾客购买金额的分析,可以判断顾客的消费水平和支付能力。高消费的顾客通常购买力强,可以成为品牌重点培养的VIP客户,可以提供个性化的服务和高端产品推荐,以增强顾客满意度和留存率。 在电子商务中,RFM模型还可以与其他模型结合使用,比如与用户行为分析模型、推荐算法等,进一步优化个性化推荐、购物车留存等各个环节。 总结来说,基于RFM模型的电商零售数据分析可以帮助企业了解顾客的购买行为和价值,以制定精准的营销策略,提高销售额,提升顾客满意度和忠诚度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值