单车销售可视化案例总结
老师指路->https://www.jianshu.com/u/1f32f227da5f
使用工具:Anaconda-jupyter、Excel、powerBI
用户消费行为的分析报告
数据为用户在一家单车网站上的消费记录
import pandas as pd
import numpy as np
columns=['user_id','order_dt','order_products','order_amount']
df=pd.read_table('bicycle_master.txt',names=columns, sep='\s+')
#\s+ 可容纳多个换行符
user_id:用户ID
order_dt:购买日期
order_products:购买产品数
order_amount:购买金额
df.head()#查看前五条记录
显示记录
df.describe()#查看数据描述统计
数据描述
分析:
大部分订单只消费了少量商品(平均2.4),有一定值干扰
用户的消费金额比较稳定,平均消费35元,中位数在25元,有一定极值的干扰
df['order_dt']=pd.to_datetime(df.order_dt,format="%Y%m%d")
df['month']=df.order_dt.values.astype('datetime64[M]')
#天数全部变为01
#df['year']=df.order_dt.values.astype('datetime64[Y]')
#df['year']#日期全部转化为年份
日期转换
对 order_dt 列(取values),转换类型为datetime64[M],默认就会是每月的第一天了。设置为[Y]就是每年的1月1日,然后生成新的一列 month/year
1.进行用户消费趋势的分析(按月)
- 每月的消费总金额
- 每月的消费次数
- 每月的产品购买量
- 每月的消费人数
每月的消费总金额
grouped_month=df.groupby('month')#按月分组
order_month_amount=grouped_month.order_amount.sum()
#求每月消费总金额
order_month_amount.head()
每月消费总金额
grouped_month_info = grouped_month[['order_amount','user_id','order_products']].agg({'order_amount':sum, 'user_id': 'count', 'order_products':sum})
每月的消费次数、产品购买量、消费人数
求每月的消费总金额(求和),消费总次数(计数),购买产品数(求和),共有18个月信息
月消费统计1
月消费统计2
grouped_month_info.rename(columns = {'order_amount':'消费金额', 'user_id': '消费次数', 'order_products': '产品购买量'}, inplace=True)
grouped_month_info
月消费统计-更名
求消费人数,将消费次数做去重处理
重置索引
将month字段转换为字符型
grouped_month_info['消费人次'] = grouped_month['user_id'].unique().map(len)
#去重,去除一人购物多次情况
grouped_month_info = grouped_month_info.reset_index()
#重置索引
grouped_month_info['month'] = grouped_month_info['month'].astype(str)
#将month 转换为字符型
将处理过的数据,导入到Excel表格中
grouped_month_info.to_excel(r'.\月销售额、销售次数、产品购买量、消费人数.xlsx')
月消费
将Excel数据导入到powerBI,可视化数据
每月消费统计-月销售额分析:
由上图可知,消费总金额在前三个月达到最高峰,后续消费较为稳定,有轻微下降趋势
产品购买量在前三个月达到最高峰,后续消费较为稳定,有轻微下降趋势
前三个月消费人数在10000笔左右,后续月份的平均消费人数则在2500人
2.用户个体消费分析
- 用户消费金额,消费次数的描述统计
- 用户消费金额和消费次数的散点图
- 用户消费金额的分布图
- 用户消费次数的分布图
- 用户累计消费金额占比(百分之多少的用户占了百分之多少的消费额)
可视化结果:
用户个体消费分析
分析:
1、从直方图可知,用户消费金额,绝大部分呈现集中趋势,小部分异常值干扰了判断,可以使用过滤操作排除异常
使用切比雪夫定理过滤掉异常值,因为切比雪夫定理说明,95%的数据都分布在5个标准差之内,剩下5%的极值就不要了
2、按照用户消费金额进行升序排序,由图可以知道50%的用户仅贡献了11%的消费额度,而排名前5000的用户就贡献了60%的消费额度
3.用户消费行为
- 用户第一次消费(首购)
- 用户最后一次消费
- 新老客户消费比
- 多少用户仅消费一次
- 每月新客占比
- 用户分层
- RFM模型
- 新、老、活跃、回流、流失
- 用户购买周期(按订单)
- 用户消费周期描述
- 用户消费周期分布
- 用户生命周期(按第一次和最后一次消费) -用户生命周期描述
- 用户生命周期分布
可视化结果:
用户消费行为分析分析:
1、(左下图)断崖式下跌很正常:可以理解用户流失比例基本一致,一开始用户迅猛增长数量比较多流失的也比较多,后面没有用户 用户最后一次购买的分布比第一次分布广
大部分最后一次购买,集中在前三个月,说明很多用户购买了一次后就不再进行购买
随着时间的递增,最后一次购买数量也在递增,消费呈现流失上升的状况(这也是正常,随着时间的增长,可能运营没跟上,或者用户忠诚度下降了)
2、 R :消费时间 F:消费金额 M:消费频次
从RFM 分层可知,大部分用户是重要保持客户,但是这是由于极值的影响,所以 RFM 的划分标准应该以业务为准,也可以通过切比雪夫去除极值后求均值,并且 RFM 的各个划分标准可以都不一样
尽量用小部分的用户覆盖大部分的额度
不要为了数据好看划分等级
用户生命周期-新客,活跃,回流,流失(一段时间不消费,或者不活跃)
4.复购率和回购率分析
- 复购率
- 自然月内,购买多次的用户占比(即,购买了两次以上)
- 回购率
- 曾经购买过的用户在某一时期的再次购买的占比(可能是在三个月内)
可视化结果:
复购率回购率分析:
复购率稳定在20%左右,前一个月因为有大量新用户涌入,而这批用户只购买了一次,所以导致复购率降低
总结
1 熟悉业务知识
2 pandas 函数使用
3 powerBI使用
网友评论