本期,我们继续使用Polars来对阿里天池数据集——淘宝用户行为进行分析。一、用户行为分析总览本节主要用Polars来看一下,在行为类型这一列中,4种行为的占比分别是多少?(pv 商品详情页pv,等价于点击;buy 商品购买;cart将商品加入购物车;fav 收藏商品)Polars实现代码如下:
df_type=df1.group_by('行为类型').len()df_type
用matplotlib画个饼图直观的看一下
import matplotlib.pyplot as pltplt.figure()plt.pie(df_type['len'], labels=df_type['行为类型'], autopct='%1.1f%%')plt.legend(df_type['行为类型'], loc="best")plt.show()
可以看到,在整个数据集中,商品点击PV数量最多,购买行为数量占比最少。二、看看只进行了一次点击操作(PV)的用户
# 筛选出行为类型等于pv的行,即只有点击的用户filtered_df = df1.filter(pl.col("行为类型")=='pv')# 找出这些行中用户ID只进行了一次点击的客户。unique_group_values = filtered_df.group_by('用户ID').len().sort(by="len",descending=False)unique_group_values
#找出只进行了一次PV点击的用户fiopv=unique_group_values.filter(pl.col('len')==1)fiopv
整个数据集中,共有666个用户只进行了一次点击PV操作。
三、统计哪个用户的用户行为最多
#统计每个用户ID在此期间进行了多少次行为类型操作bemax=df1.group_by('用户ID').agg(pl.col('行为类型').count())bemax
#排序,找出行为类型最小、最大的用户bemax.sort(by="行为类型",descending=False)
用户ID为503757的用户在整个数据集中进行了848次操作,我们来看看他(她)到底都进行了哪些操作?
#筛选出最多行为类型的用户的数据,即用户ID为503757的用户 be5max=df1.filter(pl.col('用户ID')==503757)be5max
来看看他(她)买东西(buy)的具体情况:
#看看操作最多的这位买家都买了些什么,都在什么时间买的be5max.filter(pl.col('行为类型')=='buy')
这位买家集中在一天当中的10点进行操作,其中2017年12月1日同一时间一次购买了5件商品,看来是直接购物车买单结算了 本期就分析到这里,未完待续,敬请期待!