数据分析项目实战之用户消费行为分析

更新时间:2023-07-09 18:06:12 阅读: 评论:0

数据分析项⽬实战之⽤户消费⾏为分析
数据分析项⽬中固然是⽤到很多的数据分析⼯具和技巧,但是业务知识也占⽐不⼩,本案例分析了来⾃CDNow⽹站的⼀份⽤户购买CD明细,业务结合技术进⼀步分析⽤户的消费⾏为,提⾼决策质量。CD数据包括⽤户ID,购买⽇期,购买数量,购买⾦额四个字段。
数据下载:
⽤到的⼯具,pycharm,python3.7
项⽬的总体内容包括⼀下⼏个部分:
1. 数据清洗:处理缺失值,数据类型转化,按照需要将数据整理好
2. 按⽉对数据进⾏分析:每⽉⽤户消费次数,每⽉⽤户的购买量,每⽉⽤户的购买总⾦额以及每⽉⽤户数量对⽐这些图标分析数据是否
存在误差
3. ⽤户个体消费数据分析:⽤户个体消费⾦额与消费次数的统计描述,⽤户消费⾦额和消费次数的散点图,⽤户消费⾦额的分布图(符
合⼆⼋法则),⽤户消费次数的分布图,⽤户累计消费⾦额的占⽐。
4. ⽤户消费⾏为分析:⽤户第⼀次消费时间,⽤户最后⼀次消费时间,⽤户分层,新⽼客消费⽐,⽤户购买周期,⽤户⽣命周期
⼀ 数据清洗:
拿到数据使⽤pandas的read_table读出txt⽂件,列名为'ur_id','order_dt','order_products','order_amount',由于这⾥的txt⽂件不是逗号分割的,所以p = ‘\s+’。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
columns = ['ur_id','order_dt','order_products','order_amount']
# ⽤户id 购买⽇期购买产品数购买⾦额
df = pd.read_table("",names = columns,p = '\s+')
#df.info() 检查数据是否存在空值
print(df.head())
数据读出⽆误时要检查数据中是否存在空值,并检查数据的数据类型。发现数据中并不存在空值,很⼲净的数据。那接下来既然我们需要每⽉这个数据,就要给order_dt这⼀列的数据进⾏适当的转换⼀下,转化成通常的时间格式,Y(年)m(⽉)D(⽇)。下⾯那句代码的意思是:在df⾥⼼增加⼀列列名是mounth,取出这⼀列的⽇期order_dt然后掉取这⼀列的值把值转换成以⽉为单位的,例如6⽉1号到30号统统属于6⽉1号即是六⽉。看第⼆个图结果:
df['order_dt'] = pd.to_der_dt,format ='%Y%m%d')
df['mouth'] = df.order_dt.values.astype('datetime64[M]')
这时候可以对数据进⾏简单初步分析,⽤df.describe()。产品购买数量均值在2.4,中位数是2,其分位数是3,说明⽤户购买量⼤部分都不多,少部分购买量⼤的,最⾼购买量是99,其中存在⼀定的极致⼲扰。⽤户的订单⾦额⽐较稳定,⼈均购买CD⾦额在35,中位数在25元,存在极致⼲扰,很多销售⾏业都是类似这种分布,⼩额⽐较多,⼤额的较少,收⼊来源很⼤⼀部分是来⾃⼤额。也即是⼆⼋
到这⾥数据都准备好了进⾏下⼀步分析。
⼆ 按⽉分析数据趋势:
在这⾥⽤到了⼀个groupby,⼀个在数据分析中⾮常好⽤的函数,这⼀节是要按⽉分析⽤户⾏为,⽤groupby对⽤户按照⽉分分组。
合同违约赔偿标准group_month = df.groupby('month')#按⽉对数据分组
violetsorder_month_amount = der_amount.sum()# 每个⽉份的销售总额
order_month_times = der_products.sum()# 每个⽉份的产品购买总数量
古诗竹里馆order_month_persons = group_month.unt() # 每个⽉份⽤户的数量统计
order_mounth_amount.plot()
# order_mounth_times.plot()
# order_mounth_persons.plot()
plt.show()
分组完成之后得到⼀个新的dataframe叫group_month,然后直接取出组⾥的order_amount并求和可得到每个⽉份的销售总额,并且画出折线图,(控制折线图的三⾏代码挨个运⾏可得到仨图,⼀起运⾏的话就在⼀个图⾥展⽰三条线)
坐落于每个⽉份的销售总额曲线图每个⽉份的产品购买总数量曲线图
每个⽉份⽤户数量统计
从上⾯仨图可以看出数据没有什么问题,⽤户购买总额跟⽤户购买次数以及⽤户购买量⾛势是⼤致相
同的,但是从四⽉份开始销量严重下滑,具体是原因是什么,我们可以再来看⼀下每个⽉的消费⼈数:
plt.show()
左慈戏曹操
每个⽉的消费⼈数
每⽉的消费⼈数⼩于每⽉的消费次数,但是区别不⼤。前三个⽉每⽉的消费⼈数在8000—10000之间,后续⽉份,平均消费⼈数在2000不到。⼀样是前期消费⼈数多,后期平稳下降的趋势。
三 ⽤户个体消费数据分析:
富士康待遇之前的都是看趋势,现在看个体的消费⽔平如何,
主要分析的对象是:
1. ⽤户消费⾦额和消费次数的统计以及散点图来观察⽤户的平均消费⽔平
2. ⽤户消费⾦额的分布图(⼆⼋原则)
3. ⽤户消费次数的分布图
4. ⽤户累计消费⾦额的占⽐(百分之多的⽤户占了百分之多少的消费额)
group_urID = df.groupby('ur_id')
print(group_ur.sum().describe())
奔流到海不复回以ur_id为索引进⾏分组,在⽤户的⾓度来看,每位⽤户平均购买七张CD,最少的⽤户购买了⼀张,最多购买1033张,中位数是三张,反映出有些数据的波动还是挺⼤,⽤户购买的⾦额平均是106中位数是43,购买最⼤⾦额是13990,四分位数19,这些数据加上之前的按⽉分析,⼤致勾勒出CD销售⼤致趋势,在⼀段时间销量上升,突然在某时期不景⽓开始猛地下跌,但是⼤部分还都是处于平稳,销售额也低。
group_urID = df.groupby('ur_id')
group_urID.sum().query("order_amount<3000").plot.scatter(x = 'order_amount',y = 'order_products')
# group_urID.sum().order_amount. plot.hist(bins = 20)
# group_urID.sum().query("order_products<100").order_products.plot.hist(bins = 40)
#柱状图
plt.show()
上⼀段代码的意思是以ur_id为索引进⾏分组但是分组之后可能会发现打印出来的是对象,因为需要对分组完的数据进⾏进⼀步操作,例如求和求均值等等。然后再这⾥⽤到的是对数据进⾏求和,然后调⽤quary⽅法规定x轴坐标order_amunt的值⼩于3000,调⽤plot⾥的scatter散点图,画出散点图。
⽤户购买⾦额和购买数量的散点图
⽤户消费⾦额分布⽤户消费次数分布
从散点图中看出数据集中分布在购买⾦额⼩购买量少上, 数据基本成线性分布,购买CD⾦额⼤数量
就多,⾦额少数量也少。
从消费⾦额中可以看出消费⾦额偏向很低基本在0-1000元之间,可看出其主要还是⾯向低消费⼈群。从消费次数柱状图中可以看出,绝⼤部分⽤户消费次数并不多,甚⾄很少,消费次数基本在0-20次之间。
cum1 = group_urID.sum().sort_values("order_amount").apply(lambda x:x.cumsum()/x.sum())
<_index().order_amount.plot()
plt.show()
上⾯这段代码的意思是求出⽤户的累计消费⾦额占⽐,cumsum⽅法是滚动求和,对求完占⽐之后的dataframe进⾏重置 索引,重置索引之后的索引是按照升序排列好的,所以画出的图横坐标就是索引,纵坐标就是消费额所占⽐例,可以反映出百分之多少的⽤户占了消费额的百分之多少。
山东属于哪个区域⽤户消费额占⽐
从消费额占⽐中看得出百分之五⼗的⽤户才占了百分之⼆⼗不到的消费额,排名前五百的⽤户占有了
快百分之五⼗的消费额,消费还是主要集中在⼀些⼤客户上。
三 ⽤户消费⾏为分析:
1. ⽤户第⼀次消费&⽤户最后⼀次消费
2. 新⽼客消费⽐(多少客户仅消费⼀次,每⽉新客占⽐)
3. ⽤户分层(RFM,新,⽼,活跃,流失)
4. ⽤户消费周期
5. ⽤户⽣命周期
看⼀下⽤户本⾝第⼀次消费和最后⼀次消费都集中在⼏⽉
print(h.min().value_counts())
print(h.max().value_counts())
# h.min().value_counts().plot()
# h.max().value_counts().plot()
# der_dt.max().value_counts().plot()
plt.show()

本文发布于:2023-07-09 18:06:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1087750.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:消费   数据   购买
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图