用户分析-RFM模型&生命周期

import numpy as np
import pandas as pd
from pandas import DataFrame,Series
import matplotlib.pyplot as plt

第一部分:数据类型处理

  • 数据加载
    • 字段含义:
      • user_id:用户ID
      • order_dt:购买日期
      • order_product:购买产品的数量
      • order_amount:购买金额
  • 观察数据
    • 查看数据的数据类型
    • 数据中是否存储在缺失值
    • 将order_dt转换成时间类型
    • 查看数据的统计描述
      • 计算所有用户购买商品的平均数量
      • 计算所有用户购买商品的平均花费
    • 在源数据中添加一列表示月份:astype('datetime64[M]')
#数据的加载
name = ['user_id','order_dt','order_product','order_amount']
df = pd.read_csv('./data/CDNOW_master.txt',header=None,sep='\s+')#\s+表示多个空格
df.columns = name

df.info()

#将order_dt转换成时间类型
df['order_dt'] = pd.to_datetime(df['order_dt'],format='%Y%m%d')

#查看数据的统计描述
df.describe()

#基于odert_dt取出其中的月份
df['order_dt'].astype('datetime64[M]')

#在源数据中添加一列表示月份
df['month'] = df['order_dt'].astype('datetime64[M]')

第二部分:按月数据分析

  • 用户每月花费的总金额
    • 绘制曲线图展示
  • 所有用户每月的产品购买量
  • 所有用户每月的消费总次数
  • 统计每月的消费人数
#用户每月花费的总金额
df.groupby(by='month')['order_amount'].sum()

plt.plot(df.groupby(by='month')['order_amount'].sum())#方法一
df.groupby(by='month')['order_amount'].sum().plot()#方法二

#所有用户每月的产品购买量
df.groupby(by='month')['order_product'].sum()

#所有用户每月的消费总次数
df.groupby(by='month').coun
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RFM模型是一种用户生命周期模型,它基于用户的消费行为对用户进行分层和细分,以便于企业进行精细化运营。RFM模型主要通过三个指标来衡量用户价值: - Recency(最近一次消费时间):用户最近一次购买时间距今的时间越短,代表用户的忠诚度和活跃度越高。 - Frequency(消费频率):用户购买的次数越多,代表用户对企业的忠诚度越高。 - Monetary(消费金额):用户购买的金额越多,代表用户的价值越高。 在Python中,我们可以使用Pandas和Numpy库来实现RFM模型。以下是一个简单的代码示例: ```python import pandas as pd import numpy as np # 读取数据 data = pd.read_csv('user_behavior.csv') # 计算Recency latest_date = max(data['date']) data['Recency'] = latest_date - data['date'] # 计算Frequency frequency = data.groupby('user_id').size().reset_index(name='Frequency') data = pd.merge(data, frequency, on='user_id') # 计算Monetary monetary = data.groupby('user_id')['amount'].sum().reset_index(name='Monetary') data = pd.merge(data, monetary, on='user_id') # 计算RFM值 r_labels = range(4, 0, -1) f_labels = range(1, 5) m_labels = range(1, 5) r_quartiles = pd.qcut(data['Recency'], q=4, labels=r_labels) f_quartiles = pd.qcut(data['Frequency'], q=4, labels=f_labels) m_quartiles = pd.qcut(data['Monetary'], q=4, labels=m_labels) data = data.assign(R=r_quartiles.values, F=f_quartiles.values, M=m_quartiles.values) # 计算RFM得分 data['RFM_Score'] = data[['R', 'F', 'M']].sum(axis=1) # 分析RFM rfm = data.groupby('RFM_Score').agg({ 'Recency': 'mean', 'Frequency': 'mean', 'Monetary': ['mean', 'count'] }).round(1) # 输出结果 print(rfm) ``` 这个代码示例可以将用户行为数据读取后,计算出每个用户的Recency、Frequency和Monetary指标,然后根据这些指标计算出每个用户RFM值和RFM得分。最后,可以通过分析RFM得分和指标平均值来对用户进行细分和分析
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值