电商用户行为可视化分析

  1. 导入数据
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei'] # 步骤一(替换sans-serif字体)
plt.rcParams['axes.unicode_minus'] = False  # 步骤二(解决坐标轴负数的负号显示问题)
  1. 了解数据
user = pd.read_csv('E:/学习/fresh_comp_offline/tianchi_fresh_comp_train_user.csv')
user.info()

在这里插入图片描述

user.head() 
# '''
# user_id用户标识,
# item_id 商品标识,
# behavior_type,用户对商品的行为类型 包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。
# user_geohash 用户位置的空间标识,可以为空 由经纬度通过保密的算法生成
# item_category 商品分类标识 字段脱敏
# time 行为时间 精确到小时级别
# '

在这里插入图片描述

# 查看统计信息
user.describe()

在这里插入图片描述

# 查看缺失值
user.isnull().sum()

在这里插入图片描述
3. 处理数据

user.duplicated().sum()
# 删除重复值
user.drop_duplicates(keep='last',inplace=True)
user.info() # 查看是否删除了重复值

在这里插入图片描述

# 将时间转换为datetime格式
user['time'] = pd.to_datetime(user['time'])
user.head()

在这里插入图片描述

# 提取出日期、月、年
user['dates'] = user.time.dt.date
user['month'] = user.dates.values.astype('datetime64[M]')
user['hours'] = user.time.dt.hour
user.head()

在这里插入图片描述

# 转换数据类型
user['behavior_type'] = user['behavior_type'].apply(str)
user['user_id'] = user['user_id'].apply(str)
user['item_id'] = user['item_id'].apply(str)
user.info()

在这里插入图片描述
4. 数据可视化
4.1 统计每日PV和UV数据

# 统计每日PV数据
pv_day = user[user.behavior_type=='1'].groupby('dates')['behavior_type'].count()
pv_day

在这里插入图片描述

# 统计每日UV数据
uv_day = user[user.behavior_type=='1'].drop_duplicates(['user_id','dates']).groupby('dates')['user_id'].count()
uv_day

在这里插入图片描述
4.2 分析每天的PV和uv的趋势

pv_day.plot(figsize=(12,5),legend=True,title='pv与uv趋势图')
uv_day.plot(legend=True)

在这里插入图片描述
两个数据的数据量相差较大,因此需要使用两个不同的坐标来表示

fig,ax1 = plt.subplots()
ax1.plot(pv_day,label = 'pv',color='red')
ax2 = ax1.twinx()
ax2.plot(uv_day,label = 'uv',color='green')
fig.legend()
plt.show()

在这里插入图片描述
4.3 pv、uv差异分析(by day)

pv_uv = pd.concat([pv_day,uv_day],join='outer',axis = 1)
pv_uv.columns = ['pv_day','uv_day']
pv_uv

在这里插入图片描述

pv_uv[['pv_day','uv_day']].plot(secondary_y=['pv_day','uv_day'])

在这里插入图片描述

new_day = pv_uv.diff() # 计算日期之间的差异
new_day.columns = ['new_pv','new_uv']
new_day

在这里插入图片描述

new_day.new_uv.plot()
new_day.new_pv.plot()

在这里插入图片描述
5. 不同时期用户行为分析

# 统计不同购买行为的每日总计量
shopping_cart= user[user.behavior_type == '3'].groupby('dates')['behavior_type'].count()
collect=user[user.behavior_type=='2'].groupby('dates')['behavior_type'].count()
buy=user[user.behavior_type=='4'].groupby('dates')['behavior_type'].count()

plt.figure(1,figsize=(10,4))
plt.plot(shopping_cart,'go-',label='加购人数')
plt.plot(collect,'bo-',label='收藏人数')
plt.plot(buy,'ro-',label='购买人数')
plt.legend()
plt.show()

在这里插入图片描述
可以看到数据在12月11日附近有较大的波动,考虑是双十二活动的影响,整理分析用户的不同时期行为可能会导致分析结果与实际差异较大,因此拆分开来做不同的对比分析

  1. 不同时段用户行为分析
    选取活动数据子集
active = user[user['dates'].isin(["2014/12/11","2014/12/12","2014/12/13"])]
active

在这里插入图片描述
选取日常数据子集

daily = user[~user['dates'].isin(["2014/12/11","2014/12/12","2014/12/13"])]
daily

活动期间不同时段的用户行为分析

uv_h = active[active.behavior_type=='1'].groupby('hours')['user_id'].count()
collect_h = active[active.behavior_type=='2'].groupby('hours')['behavior_type'].count()
cart_h = active[active.behavior_type=='3'].groupby('hours')['behavior_type'].count()
buy_h = active[active.behavior_type=='4'].groupby('hours')['behavior_type'].count()
uv_h.plot(kind='bar',title="浏览人数")

在这里插入图片描述

plt.figure(figsize = (10,5))
plt.plot(cart_h,'go-',label='加购人数')
plt.plot(collect_h,'bo-',label='收藏人数')
plt.plot(buy_h,'ro-',label='购买人数')
plt.title("日均各时段活动用户行为")
plt.legend()
plt.show()

在这里插入图片描述
这是三天活动的日均数据,可以发现活动期间是商家在起主导作用大促集中在零点,因此用户的购买高峰也出现在0点, 点击浏览的高峰集中在晚上的21点到22点之间,因此商家可以在20点前改好促销页面吸引顾客参加0点的活动。

日常期间不同时段的用户行为分析

uv_d = daily[daily.behavior_type=='1'].groupby('hours')['user_id'].count()
collect_d = daily[daily.behavior_type=='2'].groupby('hours')['behavior_type'].count()
cart_d = daily[daily.behavior_type=='3'].groupby('hours')['behavior_type'].count()
buy_d = daily[daily.behavior_type=='4'].groupby('hours')['behavior_type'].count()
uv_d.plot(kind='bar',title="浏览人数")

在这里插入图片描述

plt.figure(figsize = (10,5))
plt.plot(cart_d,'go-',label='加购人数')
plt.plot(collect_d,'bo-',label='收藏人数')
plt.plot(buy_d,'ro-',label='购买人数')
plt.legend()
plt.title("日均各时段活动用户行为")
plt.show()

在这里插入图片描述
与大促不同的是日常期间购买人数从上午10点到晚上19点变化都不会太大,高峰出现在晚上21点,pv、加购、收藏的高峰出现在晚上21点到22点之间,说明大家都喜欢在晚上这个时间段浏览商品,日常时可以集中在这个时段进行促销活动,浏览高峰也是集中在晚上21点到22点之间。

  1. 购买率
    活动期间购买率
hour_buy_user_sum = active[active.behavior_type=='4'].drop_duplicates(['user_id','dates','hours']).groupby('hours')['user_id'].count()
hour_buy_user_sum  # 活动时每小时的购买人数

在这里插入图片描述

hour_active_user_sum = active.drop_duplicates(['user_id','dates','hours']).groupby('hours')['user_id'].count()
hour_active_user_sum  # 活动参加人数

在这里插入图片描述

hour_buy_rate = hour_buy_user_sum/hour_active_user_sum
attr_o = list(hour_buy_user_sum.index)
vo_2 =np.around(hour_buy_rate.values,decimals=2)
vo_2

在这里插入图片描述
日常购买率

hour_buy_daily_num = daily[daily.behavior_type == '4'].drop_duplicates(['user_id','dates', 'hours']).groupby('hours')['user_id'].count()
hour_active_daily_num = daily.drop_duplicates(['user_id','dates', 'hours']).groupby('hours')['user_id'].count()
daily_buy_rate = hour_buy_daily_num / hour_active_daily_num
vi_2 =np.around(daily_buy_rate.values,decimals=2) 

在这里插入图片描述

plt.figure()
plt.plot(hour_buy_rate,marker='o',label="活动购买率")
plt.plot(daily_buy_rate,marker='o',label="日常购买率")
plt.legend()
plt.show()

在这里插入图片描述
日常时的购买率最高的出现在上午10点到下午15点间,还有晚上的21点,和活动期间的购买率不同,但是明显晚上21点已经在分析中出现比较多的峰值,因此可以考虑这个时段做做吸引用户购买的措施。

  1. 转化漏斗分析
# 活动转化
a_pv = active[active.behavior_type == '1']['user_id'].count()
a_cart=active[active.behavior_type=="3"]["user_id"].count()
a_collect=active[active.behavior_type=="2"]["user_id"].count()
a_buy=active[active.behavior_type=="4"]["user_id"].count()
a_attr=["点击","加入购物车","收藏","购买"]
values=[np.around((a_pv/a_pv*100),2),
        np.around((a_cart/a_pv*100),2),
        np.around((a_collect/a_pv*100),2),
        np.around((a_buy/a_pv*100),2),
       ]

在这里插入图片描述
参考链接:
电商用户行为可视化分析

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
上百节课详细讲解,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程介绍: 讲解一个真实的、复杂的大型企业级大数据项目,是Spark的大型项目实战课程。 通过本套课程的学习,可以积累大量Spark项目经验,迈入Spark高级开发行列。 课程特色: 1、项目中全面覆盖了Spark Core、Spark SQL和Spark Streaming这三个技术框架几乎全部的初级和高级的技术点和知识点, 让学员学以致用,通过一套课程,即掌握如何将Spark所有的技术点和知识点应用在真实的项目中,来实现业务需求! 2、项目中的4个功能横块,全郃是实际企业项目中提取出来的,并进行技术整合和改良过的功能模块.全都是企业级的复杂和真实的需求,业务模块非常之复杂,绝对不是市面上的Dem级别的大数据项目能够想比拟的,学习过后,真正帮助学员增加实际 企业级项目的实战经验。 3、项目中通过实际的功能模块和业务场景,以及讲师曾经开发过的处理十亿、甚至百亿以上数据级别的SparK作业的经验积累,贯穿讲解了大量的高级复杂的性能调优技术和知识、troubleshooting解决线上报错和故障的经验、高端的全方位数据倾斜处理和解决方案.真正帮助学员掌握高精尖的Spark技术! 4、项目中采用完全还原企业大数据项目开发场景的方式来讲解,每一个业务模块的讲解都包括了需求分析、方案设计、数据设计、编码实现、功能测试、性能调优等环节,真实还原企业级大数据项目开发场景。 模块简介: 1、用户访问session分析,该模块主要是对用户访问session进行统计分析.包括session的聚合指标计算、 按时间比例随机抽取session、获取每天点击、下单和购买排名前10的品类、并获取top10品类的点击量排名前10的session.该模块可以让产品经理、数据分析师以及企业管理层形象地看到各种条件下的具体用户行为以及统计指标.从而对公司的产品设计以及业务发展战略做出调整.主要使用Spark Core实现. 2、页面单跳转率统计,该模块主要是计算关键页面之间的单步跳转转率,涉及到页面切片算法以及页面流匹配算法.该模块可以让产品经理、数据分析师以及企业管理层看到各个关键页面之间的转率.从而对网页布局,进行更好的优设计。主要使用Spark Core实现. 3、热门商品离线统计,该模块主要实现每天统计出各个区域的top3热门商品.然后使用Oozie进行离线统计任务的定时调度,使用Zeppeline进行数据可的报表展示.该模块可以让企业管理层看到公司售卖的 商品的整体情况,从而对公司的商品相关的战略进行调螫.主要使用Spark SQL实现。 4、广告流量实时统计.该模块负责实时统计公司的广告流量.包括广告展现流量和广告点击流量,实现动态黑名单机制以及黑名单过滤,实现滑动窗口内的各城市的广告展现流立和广告点击流直的统计,实现 每个区域诲个广告的点击流置实时统计,实现每个区域top3点击量的广告的统计,主要使用Spark Streaming实现.
商echarts数据可是指使用Echarts库来将商销售数据进行可展示的方法。Echarts是一个基于JavaScript的开源数据可库,可以帮助开发者通过各种图表来展示和分析数据。在商销售情况可案例中,可以使用Echarts库来创建折线图、饼图、柱状图等不同类型的图表,来展示商平台的销售额、订单量、商品类别分布等数据。通过这些可图表,可以直观地了解商平台的运营情况,发现潜在的业务问题,并进行数据驱动的决策和优。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Echarts数据可 第7章 Echarts不同场景Dashboard制作案例 7.1 商销售情况可案例](https://blog.csdn.net/weixin_44226181/article/details/129646644)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [JavaScript+Vue的新版Echarts商平台数据可大屏监控系统源码+项目说明.zip](https://download.csdn.net/download/DeepLearning_/87350567)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值