美文网首页
CD网站的用户行为分析

CD网站的用户行为分析

作者: 暴躁荒十一 | 来源:发表于2019-04-10 22:55 被阅读0次

用于分析的数据来源于某CD网站的商品销售统计,主要分为网络订单数据和用户信息两部分,包含用户ID,购买日期,购买产品数,购买金额等四项基本数据。

数据来源链接:https://pan.baidu.com/s/15apDL4TQxPkSYcQm_Exngg
提取码:6cbb

分析目的:为平台创造更多利润,合理辨别广告投放人群,对平台商品销售数据进行分析,根据复购率、回购率、高额消费用户等指标以及消费模型得到高价值的用户,从而进行有针对的客户管理和维护。

1、数据准备
2、按月对用户消费趋势进行分析
3、用户的个体消费分析
4、用户消费行为分析

1、数据准备

导入常用数据库,进行基本设置

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline  #可视化图形直接显示在页面中
plt.style.use('ggplot')  #更改设计风格为gglot
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

导入数据

columns=['user_id','order_dt','order_products','order_amount']
df=pd.read_table('C:/Users/Duffy/Desktop/DATA/WEB_CD.txt',names=columns,sep='\s+')  #‘\s+'表示匹配任意空格符

查看表头可知
user_id对应用户ID
order_dt对应购买日期
order_products对应购买产品数
order_amount对应购买金额

df.head()
表头.png

检查数据完备性

df.info()
数据属性.png

可知数据无缺失值,无需对缺失值处理,但order_dt的数据类型是int,为方便数据处理,在这将其转化为datetime格式。

df.order_dt=pd.to_datetime(df.order_dt,format='%Y%m%d')

到这里,数据的导入和预处理就结束了。

1、按月对用户消费趋势进行分析

用户月消费趋势分成以下三部分:

  • 每月的产品购买量
  • 每月消费的总金额
  • 每月的消费人数

将订购日期(order_dt)提取出月份信息,通过数据透视表数据按月分组,分别求出每月的购买量、消费总金额以及消费人数

df['month']=df.order_dt.values.astype('datetime64[M]')
month_grouped=df.pivot_table(index='month',
                             values=['order_products','order_amount','user_id'],
                             aggfunc={'order_products':'sum','order_amount':'sum','user_id':'count'})
按月进行数据透视.png

对每项数据做直方图:

import pylab
%pylab inline
pylab.rcParams['figure.figsize']=(16,20)
fig,axes = plt.subplots(3,1)
axes0,axes1,axes2 = axes.flatten()
axes0.bar(month_grouped.index,month_grouped.order_products,width=20)
axes0.set_title('每月的产品购买量')
axes1.bar(month_grouped.index,month_grouped.order_amount,width=20)
axes1.set_title('每月消费的总金额')
axes2.bar(month_grouped.index,month_grouped.user_id,width=20)
axes2.set_title('每月的消费人数')
直方图.png

通过以上数据可知

  • 销量增长主要集中在前三个月,从第四个月起,产品购买量、消费金额、消费用户数量呈断崖式下跌,之后走向趋于平稳起伏不大。
  • 新用户的购买行为主要集中在前三月,后面的消费主要是由前三月用户的回购行为产生,说明用户忠诚度不高,用户粘性不足。

3、用户的个体消费分析

分为以下三个方面:

  • 用户消费金额、消费次数的描述统计
  • 用户消费金额和消费次数的相关性
  • 用户累计消费金额占比(百分之多少的用户占了百分多少的消费额)

3.1描述统计

按用户id进行数据透视,将透视结果做一个描述统计分析

user_grouped = df.groupby('user_id').agg({'user_id':'count',
                                          'order_products':'sum',
                                          'order_amount':'sum'})
user_grouped.describe()
描述统计.png

用户的平均消费频次约为3次,但最小值、四分位数、中位数均为1,说明大部分用户仅消费一次。
消费金额与产品购买数的平均值与三分之四分位数相等,说明了有少量的用户购买了大量的商品。

3.2消费金额和消费次数的相关性

绘制散点图

grouped_user=df.groupby('user_id')
grouped_user.sum().plot.scatter(x='order_amount',y='order_products')
散点图1.png

可见有部分极值拉大了图形区域,不利于观察
可用query函数去除极值

grouped_user.sum().query('order_amount < 6000').plot.scatter(x='order_amount',y='order_products')
散点图2.png

由图可知消费金额与消费次数呈现较大相关性
说明CD产品单一,单价稳定

3.3用户累计消费金额占比

按用户消费金额从低到高进行升序排列,然后逐个累加,求出每一个累加值的所占百分比

user_cumsum=grouped_user.sum().sort_values('order_amount').apply(lambda x:x.cumsum()/ x.sum())
user_cumsum.reset_index().order_amount.plot()
累计消费金额占比.png

可以得知,50%的客户仅贡献了15%左右的销售额,少量客户贡献了更多的销售额。

4、用户消费行为分析

主要分为以下几个方面分析:

  • 用户首购和用户最后一次消费
  • 新老客户消费比
  • 用户分层(RFM)

4.1

用户首购

grouped_user.min().order_dt.value_counts().plot()
首购.png

由图可知,用户首次消费行为基本上集中在最开始的三个月,1997年4月之后几乎没有新用户产生。

用户最后一次消费

grouped_user.max().order_dt.value_counts().plot()
最后购买.png

由图可知,用户最后一次的购买行为基本集中在前三月,三月之后折线图呈断崖式下跌,说明很多客户仅发生一次购买行为。

4.2新老客户消费比

求出用户购买产品日期的最大值和最小值,若该日期的最大值等于其最小值,说明这个用户只消费了一次。

use_life=grouped_user.order_dt.agg(['min','max'])
(use_life['min']==use_life['max']).value_counts()
微信截图_20190410214803.png

判别条件为True的用户数量为12054,占总数的51.1%,说明这部分客户仅消费过一次。

4.3用户分层

RFM模型是衡量客户价值和客户创利能力的重要工具和手段。通过客户的购买时间、购买金额、购买频率三项指标,来描述该客户的价值状况。

RFM模型分层.jpeg

先对数据做预处理,让每个日期减去最大日期获得间隔天数(该数为负数),当数值越大时,说明日期越近。

df.reset_index(inplace=True)
df['period']=(df.order_dt - df.order_dt.max())/np.timedelta64(1,'D')#计算时间差,并转换为float类型
日期.png

使用数据透视表,求出各用户的最近消费时间(R),消费频次(F),消费总金额(M)。

user_rfm = df.pivot_table(values=['period','order_products','order_amount'],
                          index='user_id',aggfunc={'period':'max',
                                                  'order_products':'count',
                                                    'order_amount':'sum' })
user_rfm = user_rfm.rename(columns = {'order_amount':'M','order_products':'F','period':'R'})
RFM.png

将用户在R、F、M三个维度上,按照高于平均值和低于平均值进行划分,高于平均值则赋值为1,低于平均值则赋值为0,最后根据RFM分层模型给所有用户分层。

def level_label(data):#定义分层函数
    level = data.apply(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


user_rfm['label'] = (user_rfm - user_rfm.mean()).apply(level_label,axis=1)
微信截图_20190410221836.png

对用户分层结果计数:

user_rfm.pivot_table(values=['R','F','M'],
                     index='label',
                     aggfunc={'R':'count','F':'count','M':'count'}).head(10)
计数.png

作饼图

label_count = user_rfm.groupby('label').count()
%pylab.rcParams['figure.figsize']=(15,15)
labels = ['一般价值客户','一般保持客户','一般发展客户','潜在客户','重点保持客户','重点发展客户','重点挽留客户','高价值客户']

plt.pie(label_count['M'],labels=labels,autopct = '%3.1f%%',startangle = 90,radius=2)
饼图.png

从用户分层结果可知,不活跃用户占较大的比重,为57.7%,高价值用户占比第二,19.6%,这是该CD网站的消费主力军,需重点保持。
而重点挽留客户、重点发展客户、重点保持客户占比较低,分别为2.5%,1.1%,1.9%。

相关文章

  • CD网站-用户行为分析

    数据源:数据来源于网上,是用户在一家CD网站上的消费记录。链接:https://pan.baidu.com/s/1...

  • CD网站的用户行为分析

    用于分析的数据来源于某CD网站的商品销售统计,主要分为网络订单数据和用户信息两部分,包含用户ID,购买日期,购买产...

  • CD网站用户行为分析项目

    阅读路线: 项目背景 项目目的 数据来源 代码展示 一、项目背景 公司于1994年2月由双胞胎兄弟杰森汀和马修汀共...

  • CD网站数据用户行为分析

    项目介绍: 本篇文章旨在对国外某一CD消费网站的用户购买记录进行分析,主要围绕平台整体消费情况和用户行为展开分析...

  • CD网站数据分析用户行为分析

    阅读路线 项目介绍:该项目对国外某一CD网站的用户购买数据进行分析,主要围绕平台整体消费情况和用户行为展开分析叙述...

  • 数据分析:CD网站用户消费行为分析

    流程 1.销量和金额的月份趋势:折线图2.每笔订单以及按用户分组:散点图3.用户消费水平:直方图4.用户首月和最后...

  • python案例——cd消费用户行为分析

    前言: 存在一份用户在一家cd网站上的消费记录,对此进行消费情况及用户行为分析。数据样式: 具体步骤:1.数据清洗...

  • Google Analytics(Google 统计)使用

    概述 运营一个网站,就需要对网站进行分析,了解用户的行为,根据用户行为可以进行网站优化,为用户提供更好、更便捷的服...

  • CD用户消费行为分析

    开始于:2020-02-19目前在做消费行为的学习项目。以秦路的为标准。目前发现了几个问题: 一、apply函数使...

  • 用户消费行为分析项目(python)

    数据来源:CDNOW网站用户消费购买记录通过对消费数据的分析,了解网站总体运营状况,分析用户消费行为,并建立用户分...

网友评论

      本文标题:CD网站的用户行为分析

      本文链接:https://www.haomeiwen.com/subject/lywwiqtx.html