本期继续使用Polars对阿里天池淘宝用户购物行为进行分析。一、时间戳列数据的清洗去除时间戳序列中不在2017-11-25至2017-12-03日期之间的数据,因为在导入数据后发现,还是有一些数据不在这个区间内的。比如:
df1['时间戳'].min()
运行结果为:-2134949234。负数???那我们筛选一下符合条件的数据。
# 使用filter()函数筛选出列'时间戳'中值在1511561733到1512293891之间的行df1 = df1.filter(pl.col("时间戳").is_between(1511561733, 1512293891))df1
与原始数据集(100150806行)相比,清洗后的数据集为93622867行,减少了6527939行。将df1中时间戳转换为datatime。详见Polars实践(1):阿里天池——淘宝用户购物行为分析,再看一下现在时间对了没有?
df1.select(pl.col("日期").unique())
OK了 。
二、用户行为变化趋势分析
1. 用户访问量PV时间变化分析从数据集中筛选出所有pv行为的数据:
#pv数量pv1=df1.filter(pl.col('行为类型')=='pv')
1.1 按照天来进行聚合并排序:
pv_amount=pv1.group_by('日期').len().sort(by="日期",descending=False)pv_amount
用matplotlib作图看一下
import matplotlib.pyplot as pltfrom matplotlib.pyplot import rcParamsrcParams['font.sans-serif'] = ['SimHei']rcParams['axes.unicode_minus'] = False# 绘制折线图plt.figure(figsize=(10, 6))plt.plot(pv_amount['日期'], pv_amount['len'], marker='o') # marker='o' 会在每个数据点上绘制一个圆圈plt.title('数据集每日的pv数量统计')plt.xlabel('日期')plt.ylabel('数量')plt.grid(True)plt.show()
可以看到,12月2日,用户访问量最大,原因可能为2017/12/02当天淘宝开始为“双十二”活动进行预热,开启商品精选活动,因此吸引了更多的点击量。1.2 按照小时来进行聚合排序:
pv_amount_h=pv1.group_by('小时').len().sort(by="小时",descending=False)pv_amount_h
matplotlib绘图(此处代码省略)如下:
可以看到,5:00-10:00及18:00-22:00两段时间是用户活跃度迅速增长的时段;9:00-18:00这个时间段的用户活跃度上下浮动,但基本保持着同一水平;9:00和22:00这两个时间段是用户活跃度的两个小高峰,原因可能是因为用户开始工作前和睡前逛淘宝造成的。同理,我们可以制作出购买数量(buy)和收藏量(fav)的图形(此处省略相关代码)2. 购买量:
3. 收藏量:
综上,可以看到购买量、收藏量与前面的点击PV量的图形趋势是正相关的,结论也与点击PV量的结论一致。三、小结本期,我们对淘宝用户购物行为按照时间进行了分析并画出趋势图,从中我们可以得出一些结论用于指导后期改进。比如:1. 加强“双十二”预热活动的推广:既然2017/12/02当天的点击量因为“双十二”活动的预热而显著上升,建议继续加强这一时期的营销和推广力度,利用社交媒体、广告投放等多种渠道吸引更多用户关注和参与。2. 在每日活跃用户高峰期加强商品推广:在5:00-9:00和18:00-22:00这两个用户活跃度迅速增长的时段,可以增加广告投放和促销活动的频率,以吸引更多的用户。3. 优化早晚高峰体验:考虑到10:00和22:00这两个时间段是用户活跃度的小高峰,建议优化这两个时段的网站和应用的性能,确保用户能够流畅地浏览和购物。......未完待续!