为了创造更多利润、实现数据驱动运营,某CD网站拟对18个月以来的近7万条消费数据进行分析。具体的研究思路如下:

【思维导图】用户消费行为分析(python).png
1、数据获取与探索
1.1数据获取
数据来源:CDNow网站的用户购买明细(不包含隐私信息)。
数据格式:转化成.csv格式。
时间跨度:18个月(199701-199806)。
字段:用户ID,购买日期,购买数量,购买金额四个字段。
user_id:用户ID
order_dt:购买日期
order_products:购买产品数
order_amount:购买金额
1.2数据导入
#导入相关库
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('ggplot') # 更改设计风格
import seaborn as sns
plt.rcParams['font.sans-serif']=['SimHei'] #用来显示中文标签
df0=pd.read_csv('D:CDNOW_master.csv',names=['user_id','order_dt','order_products','order_amount'],sep='\s+')
df0.head()
#读取csv,此处用的是 names= 而非 columns=

1.PNG
2、数据预处理
2.1数据描述
df0.info()
#使用 .info() 查看数据类型及缺失情况。

2.PNG
2.2数据清洗
缺失值:本次数据,无缺失值,故无需对缺失值处理;
数据类型:购买日期的数据类型是int,为方便后面数据处理,在这先将其转化成datetime格式;
新增['month']列,便于后续按月分析。
df0['order_dt']=pd.to_datetime(df0['order_dt'],format='%Y%m%d')
df0['month']=df0['order_dt'].astype('datetime64[M]')
df0.head()
重新查看,此时的时间列已转换为正常格式。

3.PNG
df0.describe()
#使用 .describe() 查看数据分布及极值情况。

4.png
由上图可知,
order_products列:用户平均每笔订单购买2.4个商品,标准差在2.3,故有一定的波动性。中位数在2个商品,75分位数在3个商品,说明绝大部分订单的购买量都不多。最大值为99,受极值影响。
df0['order_amount'].plot.hist(bins=200)

5.PNG
正偏态分布(也称右偏态分布):频数分布的高峰向左偏移,长尾向右延伸;【峰左移,右偏,正偏 偏度大于0】
负偏态分布(也称左偏态分布):频数分布的高峰向右偏移,长尾向左延伸。【峰右移,左偏,负偏 偏度小于0】
order_amount列:用户的消费金额受极值影响,呈正偏态分布(也称右偏态分布)【中位数50%(25元) < 平均值mean(35元)】
3、数据分析
接下来我们用之前清洗好的字段进行数据分析。
3.1消费趋势分析(按每个月分析)
3.1.1每月的消费总金额
grouped_month=df0.groupby('month') # 按月分组
grouped_month['order_amount'].sum()

6.PNG
grouped_month['order_amount'].sum().plot()

7.PNG
本次数据时间跨度为18个月(199701-199806),消费金额总体描述分析如下:由上图可知,消费金额在前三个月 {1997-01-01:299060.17,1997-02-01:379590.03,1997-03-01:393155.27}增长至峰值,在3-4月出现断崖式下滑,后续消费金额较为平稳,但有轻微下降趋势。原因分析如下:
前3个月的增长,推测是由于CD网站的促销活动;
而3-4月的异常下跌,推测是受促销活动结束的影响较大。同时由于暂缺乏详细数据,所以未对3-4月的异常收入下滑进行实际细剖与分析。收入异常下跌的其他原因整理如下:
比如:
(1)【竞争对手】方面,近期是否出现其他竞争与替代产品;
(2)【渠道】方面,可从用户数量、渠道收入(环比、下滑)两个维度来评判渠道质量,可从查看不同渠道的等数据指标。不同渠道如web端直接访问、搜索引擎渠道、第三方合作渠道等,进一步定位是否是渠道推广有问题;
(3)【用户来源】方面,从新老客构成、流失客户的特征、聚类与分类等角度;
(4)【CD产品体验】方面,针对客户的评价、网站评论及主动与用户沟通收集反馈意见问题,对产品体验进行分析,如是包装不流行、价格没优惠了等等进行优化。
(5)【用户体验流程】方面,通过埋点数据查看流失客户在网站上的行为数据:启动次数、停留时长、流程不畅(如流失客户大部分在支付环节未完成支付,那么就需要回访部分客户、进行优化改进);
3.1.2每月的消费订单数
grouped_month['user_id'].count().plot()

8.PNG
前三个月消费订单数在10000笔左右,后续月份的平均则在2500笔。
3.1.3每月的产品购买量
grouped_month['order_products'].sum().plot()

9.PNG
前三个月产品购买数在20000以上,后续月份的产品购买量在6000~8000左右 。
3.1.4每月的消费人数
grouped_month['user_id'].apply(lambda x:len(x.unique())).plot()
#法二:grouped_month['user_id'].apply(lambda x:len(x.drop_duplicates())).plot()

10.PNG
前三个月每月的消费人数在8000-10000之间,后续月份平均消费人数在2000人不到
3.1.5直接利用数据透视表分析消费金额、消费次数、产品购买量
上述消费趋势的分析可以通过数据透视表分析(不建议数据透视表进行去重操作)
pivot_df0=df0.pivot_table(index='month',values=['order_amount','user_id','order_products'],aggfunc={
'order_amount':'sum',
'user_id':'count',
'order_products':'sum'
})
pivot_df0.head()
#此处是values= 而非columns=
#数据透视表进行去重操作比较麻烦,不建议

11.PNG
pivot_df0.plot()

12.PNG
本章小结——
趋势分析:总体来看,消费总金额、消费次数、产品购买量、消费人数的趋势想似:均先上升、下跌、趋于平稳并下降。
可以看出网站的流失用户在增加,采用开源(拉新)节流(留存)的运营方式,来增加销售收入。
3.2用户个体消费能力分析(按每个用户分析)
上一部分是按月分析,主要看趋势;本部分按用户个体分析,来看消费能力。
3.2.1用户消费金额、消费数量的描述统计
grouped_user=df0.groupby('user_id')
grouped_user.sum().describe()

13.PNG
【order_products数量】用户平均购买了7张CD,但中位数只有3,说明小部分用户购买了大量的CD
【order_amount金额】用户平均消费106元,中位数为43,判断同上,有极值干扰
消费、金融和钱相关的数据,基本上都符合二八法则,小部分的用户占了消费的大头
3.2.2用户消费金额和消费数量的散点图
grouped_user.sum().plot.scatter(x = "order_amount",y = "order_products")

14.PNG
##画图前,用query先筛选:.query("order_amount<4000")【df用query,series不能用】
本文通过Python对CDNow网站18个月的消费数据进行深入分析,涉及数据获取、预处理、消费趋势、用户消费能力、用户行为等多个层面。研究发现,消费金额、消费次数在初期上升后下滑,新用户比例下降,大部分用户仅消费一次,用户消费金额呈现正偏态分布。通过RFM模型和KMeans聚类,揭示了用户价值分布和行为特征,为网站运营策略提供了依据。
最低0.47元/天 解锁文章

3746

被折叠的 条评论
为什么被折叠?



