是不是感觉被淘宝监控了!看啥立马就推送过来!用Python对淘宝用户行为进行分析!

是不是感觉被淘宝监控了!看啥立马就推送过来!用Python对淘宝用户行为进行分析!1 Python 所有方向的学习路线 新版 这是我花了几天的时间去把 Python 所有方向的技术点做的整理 形成各个领域的知识点汇总 它的用处就在于 你可以按照上面的知识点去找对应的学习资源 保证自己学得较为全面 最近我才对这些路线做了一下新的更新

大家好,我是讯享网,很高兴认识大家。

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述
讯享网

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


uv_count = data.user_id.nunique()

pv_count = data[data.behaviour_type == ‘pv’].shape[0]

print(‘平均访问深度是 %.1f’ % (pv_count / uv_count))

pv_count_perUser = data[data[‘behaviour_type’] == ‘pv’].groupby(‘user_id’)[‘behaviour_type’].count().reset_index().rename(columns = {‘behaviour_type’:‘pv_count’})

计算只浏览过一次界面的用户数量

bounce_user_count = pv_count_perUser[pv_count_perUser[‘pv_count’] == 1].shape[0]

print('跳失率是 %.3f%% ’ % (100 * (bounce_user_count / uv_count)))

平均访问深度是 92.1 跳失率是 0.086%

可以得到用户的平均访问深度为92.1,也就是说在11月25到12月3日9天内平均每个用户每天要访问10个界面,可见淘宝用户粘度很高。

按照 跳失率=只浏览一次界面/总用户 计算的话,发现Bounce Rate 只有 0.086% 左右,平台整体流失率相当低。

4.1.3 用户转化情况


了解一下用户浏览、收藏、加购物车和购买行为的整体分布趋势。

#不同行为类型用户pv分析

import seaborn as sns

pv_detail=data.groupby([‘behaviour_type’,‘hour’])[‘user_id’].count().reset_index().rename(columns={‘user_id’:‘total_pv’})

plt.subplots(figsize = (10,5))

sns.pointplot(data=pv_detail,hue=‘behaviour_type’,x=‘hour’,y=‘total_pv’)

​​另外三条不是很清晰,再画一次。

plt.subplots(figsize = (10,5))

sns.pointplot(data=pv_detail[pv_detail.behaviour_type!=‘pv’],hue=‘behaviour_type’,x=‘hour’,y=‘total_pv’)

​​ 四种用户行为的波动情况基本一致,其中浏览页面pv数远大于其他三项,用户加购物车、收藏和购买数依次降低,可以通过漏斗模型整体分析用户转化情况。

data[‘behaviour_type’].value_counts().sort_values()

buy 24363

fav 33294

cart 66145

pv

Name: behaviour_type, dtype: int64

from pyecharts import Funnel

attrs = [‘pv’,‘cart’,‘fav’,‘buy’]

attr_value = [,66145,33294,24363]

fun= Funnel(“用户行为漏斗图”,title_pos=‘center’)

fun.add(name=“商品交易环节”, # 指定图例名称

attr=attrs, # 指定属性名称

value = attr_value, # 指定属性所对应的值

is_label_show=True, # 指定标签是否显示

label_formatter=‘{c}%’, # 指定标签显示的格式

label_pos=“outside”, # 指定标签的位置

legend_orient=‘vertical’, # 指定图例的方向

legend_pos=‘left’, # 指定图例的位置

is_legend_show=True) # 指定图例是否显示

fun.render()

fun

​​最后购买的转换率为2.27%左右。

统计每个行为的独立用户数,计算是UV到各环节的转化率:

#独立访客数UV

uv=data[‘user_id’].unique().shape[0]

#有过点击行为的用户数即pv

pv0=data[data[“behaviour_type”]==“pv”][“user_id”].drop_duplicates()

pv=pv0.shape[0]

#有过加购物车行为的用户数即cart

cart0=data[data[“behaviour_type”]==“cart”][“user_id”].drop_duplicates()

cart=cart0.shape[0]

#有过收藏行为的用户数即fav

fav0=data[data[“behaviour_type”]==“fav”][“user_id”].drop_duplicates()

fav=fav0.shape[0]

#有过购买行为的用户数即buy

buy0=data[data[“behaviour_type”]==“buy”][“user_id”].drop_duplicates()

buy=buy0.shape[0]

#每个行为的独立用户数

uniqueuser=pd.Series([uv,pv,cart,fav,buy],

index=[‘uv’,‘pv’,‘cart’,‘fav’,‘buy’])

uniqueuser

uv 11675

pv 11636

cart 8775

fav 4603

buy 8007

dtype: int64

attrs = [‘uv’,‘pv’,‘cart’,‘fav’,‘buy’]

attr_value = uniqueuser.values

fun1= Funnel(“用户行为漏斗图”,title_pos=‘center’)

fun1.add(name=“商品交易环节”, # 指定图例名称

attr=attrs, # 指定属性名称

value = attr_value, # 指定属性所对应的值

is_label_show=True, # 指定标签是否显示

label_formatter=‘{c}%’, # 指定标签显示的格式

label_pos=“outside”, # 指定标签的位置

legend_orient=‘vertical’, # 指定图例的方向

legend_pos=‘left’, # 指定图例的位置

is_legend_show=True) # 指定图例是否显示

fun1.render()

fun1

​​可以看到uv到最终购买的转化率为68.58%,流失率为31.42%。

对于流失率,电商平台要结合行业数据,以及以往数据,分析流失率是否是正常范围。

上面近32%的“流失用户”中,有的可能在不久的将来还会成为购买用户,因为有的加购或收藏了商品;但是上文提到的“跳失用户”只进行了一次点击,再成为活跃用户的可能性很小。

(二)用户消费习惯分析

4.2.1 用户付费率PUR(Paying User Rate)


根据 用户付费率 = 有购买记录的用户 / 活跃用户 计算:

# 用户付费率分析

paying_user_count = data[data.behaviour_type == ‘buy’].user_id.nunique()

print(‘用户付费率是 %.2f%%’ % ( 100 * paying_user_count / uv_count))

用户付费率是 68.58%

4.2.2 用户购买次数


根据 总购买次数 / 总付费用户 计算:

# 用户购买次数情况分析

import matplotlib.pyplot as plt

#用户,购买次数

user_buy=data[data.behaviour_type==‘buy’].groupby(‘user_id’)[‘behaviour_type’].count().reset_index().rename(columns={‘behaviour_type’:‘cnt’})

#根据次数再分组画图

ub=user_buy.groupby(‘cnt’)[‘user_id’].count()

plt.bar(ub.index,ub.values)

cnt

1 2699

2 1876

3 1253

4 742

5 460

6 299

7 209

8 123

9 85

10 58

​​由上图可知,购买次数为1次的用户数量最多

4.2.3 用户复购率


根据 用户复购率 = 多次购买用户数 / 总付费用户 计算:

#复购用户数量 通过筛选支付次数>=2

paying_retention_user_count = user_buy[user_buy[‘cnt’] >= 2][‘user_id’].count()

print(‘复购率是 %.2f%%’ % (100 * paying_retention_user_count / paying_user_count))

复购率是 66.29%

4.2.4 用户复购的间隔时间


#计算用户复购的间隔时间

buy=data[data.behaviour_type==‘buy’].groupby([‘user_id’,‘date’])[‘item_id’].count().reset_index()

buy_day=buy.groupby(‘user_id’).date.apply(lambda x:x.diff(1).dropna())

buy_day=buy_day.map(lambda x:x.days)

buy_day

user_id

100 1 2

2 1

117 4 1

5 1

6 1

15947 1

15950 4

15951 2

15954 4

15956 6

Name: date, Length: 7951, dtype: int64

buy_day.value_counts().plot(kind=‘bar’)

​​

4.2.5 商品销售分析


对于一类商品,衡量其市场情况,应该同时分析点击量和购买量。关于这个问题的探讨,先分别按“item_id”和“product_id”统计点击量和购买量,通过散点图看相关性。

(1)先看“item_id”的点击量和购买量整体情况:

pv_item=data[data[“behaviour_type”]==“pv”].groupby(“item_id”)[“user_id”].count().sort_values(ascending=False)

buy_item=data[data[“behaviour_type”]==“buy”].groupby(“item_id”)[“user_id”].count().sort_values(ascending=False)

merge=pd.merge(pv_item,buy_item,on=[“item_id”],how=“outer”).fillna(0)

x=merge[“user_id_x”]

y=merge[“user_id_y”]

plt.figure(figsize=(8,6))

plt.scatter(x,y,marker=“o”)

#商品类目点击量和购买量关系图

​​从点击量和购买量的散点图可以看出,大部分商品类目都是点击量和购买量都比较低,整体是正相关,有少量类目的点击量或购买量很大,或点击量和购买量都比较大。

(2)再看“product_id”的点击量和购买量整体情况:

pv_product=data[data[“behaviour_type”]==“pv”].groupby(“product_id”)[“user_id”].count().sort_values(ascending=False)

buy_product=data[data[“behaviour_type”]==“buy”].groupby(“product_id”)[“user_id”].count().sort_values(ascending=False)

merge=pd.merge(pv_product,buy_product,on=[“product_id”],how=“outer”).fillna(0)

x=merge[“user_id_x”]

y=merge[“user_id_y”]

plt.figure(figsize=(8,6))

plt.scatter(x,y,marker=“o”)

​​同商品类目的情况类似,大部分商品是点击量和购买量都比较低,有一定的相关性,但同时发现点击量大但购买量小的商品较多,即偏右下、偏右中的点,有一个左上角突出的点,表示有一个商品点击量不大但购买量很大。

(3)下面分析商品类目 点击量和购买量的前十:

购买top10

buytop=pd.pivot_table(data,values=“user_id”,columns=“behaviour_type”,index=“item_id”,aggfunc=“count”).sort_values(by=[“buy”],ascending=False).head(10)

buytop[‘转化率’]=buytop[‘buy’]/buytop[‘pv’]

buytop[‘转化率’]=buytop[‘转化率’].apply(lambda x: format(x, ‘.2%’))

buytop

​​

点击top10

pvtop=pd.pivot_table(data,values=“user_id”,columns=“behaviour_type”,index=“item_id”,aggfunc=“count”).sort_values(by=[“pv”],ascending=False).head(10)

pvtop[‘转化率’]=pvtop[‘buy’]/pvtop[‘pv’]

pvtop[‘转化率’]=pvtop[‘转化率’].apply(lambda x: format(x, ‘.2%’))

pvtop

​​

两表合并

pd.merge(buytop,pvtop,how=‘inner’,on=‘item_id’)

​​

这6个类目的点击量和购买量都是前十,说明是很受用户欢迎的类目,无疑是重点类目,但发现其实这些类目的转化率也不是很高,电商平台应该重点推送这几类商品,因为这类商品有市场,并且可以多做活动,吸引更多的潜在客户变成购买客户。

而购买量比较高,但是点击量不突出的这类商品,也许是特定群体非常需要的,他们可能搜索和点击的目标比较明确。电商平台可以收集用户信息,分析用户画像,结合商品特点,核实是否如此。

如果是某类特征明显的用户群体购买更多,可以集中向该类用户多推送。如果没有明显的群体需求,建议对这类商品多做推广,因为原有的购买量就比较高,若是能够提高点击量,可能购买量也会再上一个台阶。

但是点击量很高,但购买量偏低的这类商品,应该先从商品本身分析,是否是用户真正需要的。为什么大部分用户点击,但购买较少,是因为价格太高?还是其他原因?调查清楚原因之后再对症下药。

如果你也是看准了Python,想自学Python,在这里为大家准备了丰厚的免费学习大礼包,带大家一起学习,给大家剖析Python兼职、就业行情前景的这些事儿。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

小讯
上一篇 2025-01-07 20:08
下一篇 2025-04-04 14:13

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/125210.html