当前位置: 首页 > news >正文

基于hadoop的竞赛网站日志数据分析与可视化(下)

【基于hadoop的竞赛网站日志数据分析与可视化(上)】讲解了如何用hadoop对数据进行初步处理,本篇主要讲解用python对结果数据进行可视化分析。

-------------------------------------------------------------------------------------------------------------

5 数据可视化与分析

5.1 不同日期访问次数可视化

5.1.1 代码设计

       用pd.read_csv读取文本文件,指定分隔符sep='\t'(适配制表符分隔的格式),手动命名列(names=['date', 'visit_count'])。先清理日期字符串的空白(避免解析异常),再用pd.to_datetime转化为时间格式(errors='coerce'把解析失败的设为NaN),最后删除无效行。

       用groupby('date')把分散的访问量“按天归集”,求和得到每日总访问量;再用折线图(加标记点)呈现时间维度的变化趋势(方便观察波动、峰值)。通过标签、排版优化让图表更“易用”;用describe()输出统计指标(如平均访问量、最大最小值),补充可视化之外的量化结论。

5-1-1 不同日期访问次数可视化代码

5.1.2 运行结果与分析

       由图5-1-2-1和图5-1-2-2,标准差高达4,176,表明数据分布极不均匀,中位数(704)远低于平均值(1,739),说明数据右偏严重,75分位数为1,436,但最大值高达41,518,存在极端异常值,这种分布表明少数用户贡献了绝大部分访问

       流量整体趋势属于“瓶颈期+爆发期”接替,2020年12月出现异常高峰(接近40,000次访问),2021年初访问量有所回落但仍高于2020年夏季水平,建议对这个时间短的数据进行进一步分析。

5-1-2-1 输出结果

5-1-2-2 可视化结果

5.3 四个月各用户访问次数可视化

5.3.1 代码设计

①数据处理

       先用split(',', 1)精准切分“页面 ID”和“时间+次数”,再对第二部分用split('\t')拆出时间与次数——这是针对“非标准分隔符”的定制化解法,确保混乱格式能被解析。

       通过count <= 0过滤无效浏览量,用pd.to_datetime(..., errors='coerce')+pd.isna筛掉畸形时间。最终打包成 DataFrame,让下游分析能直接调用。

5-3-1-1 数据处理代码1

5-3-1-2 数据处理代码2

②访问频率分布

       先groupby('user_id')['visits'].sum()算出每个用户的总访问量。再用user_visits['visits'] < 200把极端值“砍一刀”,让直方图聚焦大多数用户的分布(毕竟运营中 80% 精力要服务普通用户)。

       用histplot(..., kde=True)同时呈现“次数分布”和“密度趋势”,一眼就能看出 “用户访问次数集中在哪个区间、分布是否均匀”。

5-3-1-1 访问频率分布代码

③顶级活跃用户分析

       抓出头部:nlargest(20, 'visits')筛出访问量 Top20 用户;barplot用彩色柱状图把他们的“贡献值”可视化,解决“谁是核心用户”的问题。

       追踪行为:提取这些用户 ID 后,all_data[all_data['user_id'].isin(top_user_ids)]精准抓取其行为数据;再按日期排序,用plt.plot画出每日访问曲线,把“用户是谁”延伸到 “用户做了什么”,挖掘他们的访问规律,为“如何留住/复制这些用户”提供依据。

5-3-1-2 顶级活跃用户分析代码

5.3.2 运行结果与分析

由频率分布可视化结果(图5-3-2-1)我们可以得出以下结论。

①用户访问行为的“长尾分布”特征

       集中低访问区间:大部分用户(柱状图左侧高柱)的总访问次数集中在 0-25 次 区间,说明平台的基础用户群体以“轻度访问”为主,这是互联网产品常见的 “长尾分布”特征——少数用户贡献高频访问,多数用户访问频次低。

       长尾衰减趋势:随着总访问次数增加(横轴向右),用户数量快速减少(柱状图高度骤降),且频率曲线(蓝色线条)呈指数级衰减,意味着 高频访问用户(如>50 次)占比极低,属于平台的 “核心活跃用户”。

②平台用户分层与运营重点

       基础用户(0-25 次):占比最大,是平台流量基本盘。需通过优化体验(如简化操作、首页内容推荐)留住这部分用户,避免流失;可设计“新手任务”、“签到奖励” 等引导其增加访问。

       潜力用户(25-50 次):用户数量明显减少,但仍有一定规模。这部分用户有向高频转化的潜力,可通过“进阶任务”、“专属内容推送”(如竞赛冲刺攻略)提升活跃度。

       核心用户(>50 次):数量极少,但贡献了大量访问。需重点维护(如专属客服、高级权益),他们是平台口碑传播、内容消费的关键群体。

5-3-2-1 用户访问频率分布可视化

由顶级活跃用户可视化分析结果(图5-3-2-2、图5-3-2-3)可得出以下结论。

①访问波动与活跃度

       高活跃用户识别:部分用户(如用户 9430、用户 93223 )在较长时间内保持较高访问次数,是平台超级活跃用户,对平台粘性强、参与度高。

       波动型用户:多数用户访问次数随时间明显波动(如用户 93497 前期高访问,后期骤降),说明其活跃度受外部因素(如竞赛节奏、个人时间)影响大。

②时间周期与行为规律

       短期集中访问:图中多条曲线在特定时间点(如 2020-11-03、2021-01-26 )出现峰值,可能对应平台关键节点(如竞赛活动、内容更新),触发核心用户集中访问。

       长期衰减趋势:多数用户后期访问次数下降,需关注平台长期留存策略,避免核心用户流失

5-3-2-2 访问次数最多的前20名用户数据可视化

5-3-2-3 顶级用户每日访问次数时间序列可视化

5.4 四个月各页面访问次数可视化

5.4.1 代码设计

       在上一小节数据处理的代码上增加以下核心代码,进行对四个月各页面访问次数的可视化。

       首先用groupby做“数据归集”,把零散的浏览行为收拢到“页面”这个业务实体;sort_values 则是“筛选重点”,避免无差别分析——毕竟运营中 80% 价值往往来自 Top 页面。接着用柱状图把“页面-总览量”的抽象关系,转化为直观的长短对比,一眼锁定“哪些页面最核心”。

        进一步把时间切分到“周维度”,但关键是用 pd.Categorical 规范星期顺序——这是“对抗数据无序性”的细节设计(否则默认按字母排序,图表会失去业务意义),然后用柱状图对比不同页面的“周活跃模式”。

       用箱线图展示“数据分布的离散程度”——中位数(箱体中线)体现“典型浏览量”,箱体高度体现“日常波动范围”,离群点体现“异常流量(活动/爬虫等)”。回答“页面流量稳定吗?”——如果页面的箱线图“上须”极长,说明偶尔有爆发式访问,需排查是运营亮点(可复制)还是异常(需监控)。

5-4-1 各页面访问数据可视化核心代码

5.4.2 运行结果与分析

       由热门页面总浏览次数对比图(图5-4-2-1)可知,页面 ID 为 1693、1688 的总浏览次数远超其他页面,是流量核心,直接体现 “哪些页面最受关注(总量维度)”。

5-4-2-1 热门页面总浏览次数对比图

由热门页面浏览量分布箱线图(图5-4-2-2)可得到以下信息。

①整体分布特征

       差异悬殊:不同页面浏览量差距极大,部分页面(如1488、1544等)浏览量集中在极低区间,而1688、1693等页面浏览量显著更高,反映出页面受关注程度分化明显。

       异常值(离群点):1688、1693等页面存在明显长须和离群点,说明这些页面偶尔会出现远高于日常的浏览峰值,可能受活动、突发流量等影响。

②重点页面分析(以1688、1693为例)

       1688 页面箱体跨度大(从接近 0 到 20000+),说明浏览量波动剧烈,日常浏览量分布广;中位数(箱体中间线)约 10000,代表“典型浏览量水平”,长上须和高离群点,佐证存在爆发式流量;1693 页面箱体高度与 1688 接近,但上须更长、离群点更高(近 40000),峰值流量更极端,中位数略低于 1688,说明“典型浏览量”稍弱,但爆发潜力更强。

③低流量页面特征(如 1488、1544 等 )

       箱体极扁、须极短,甚至几乎与 x 轴重合,说明这些页面浏览量极低且稳定,几乎无波动,属于“冷门页面”,需评估其价值或优化必要性。

5-4-2-2 热门页面浏览量分布箱线图

根据图5-4-2-3和图5-4-2-4,我们可以得到以下信息。

①核心趋势:“流量断层分化+逐月衰减”

       蓝色(1488)、绿色(1628)两条线 “初期高流量、后期暴跌”,这类页面大概率是“短期活动页/热点页”(比如2020年11-12月的营销活动页,活动结束后流量自然回落)。其他颜色线条“全程低流量”,属于“长尾页面”(可能是内容冷门、入口隐蔽,或缺乏运营投入)。

②核心规律“少数页面垄断周内流量”

       棕色(1628)在 Monday(周一) 流量峰值,推测是 “工作日强相关页面”(如办公工具、工作资讯类,周一用户集中使用);蓝色(1693)在Tuesday(周二)流量断层领先,可能是“周二特定场景页”(如行业报告发布、会员日活动,吸引用户集中访问);其他页面“周内流量极低且分散”缺乏明确的用户访问规律,或用户需求弱。

5-4-2-3 热门页面浏览量遂月份变化可视化

5-4-2-4 热门页面的周浏览模式可视化

-------------------------------------------------------------------------------------------

需要数据集和完整代码的私我

http://www.dtcms.com/a/278423.html

相关文章:

  • 神经网络与深度学习Python入门
  • 构建高效事件驱动架构:AWS S3与SQS集成实践指南
  • 实战:如何创建 AWS RDS 数据库
  • 显示器核心三要素详解:刷新率、分辨率、色深
  • 【JAVA】监听windows中鼠标侧面键的按钮按下事件
  • Web 前端面试
  • redis实现红锁
  • (1-7-3)数据库的基本查询
  • 【React Native】Switch、Alert、Dimensions、StatusBar、Image组件
  • 打破数据孤岛!医疗数据如何实现“可用不可见”?
  • OpenVela之开发自测试框架cmocka
  • 深入解析ThreadLocal:线程隔离的奥秘与内存泄漏解决方案
  • HarmonyOS从入门到精通:动画设计与实现之九 - 实用动画案例详解(上)
  • Linux操作系统从入门到实战(八)详细讲解编译器gcc/g++编译步骤与动静态库链接
  • C语言:20250714笔记
  • 更改elementui 图标 css content
  • Docker搭建Redis分片集群
  • kotlin学习笔记
  • Kubernetes Ingress:实现HTTPHTTPS流量管理
  • HarmonyOS应用无响应(AppFreeze)深度解析:从检测原理到问题定位
  • Spring Boot 双数据源配置
  • 基于Python的物联网岗位爬取与可视化系统的设计与实现【海量数据、全网岗位可换】
  • java基础(day07)
  • java基础-1 : 运算符
  • 如何连接 AWS RDS 数据库实例
  • Spark 和 Hadoop MapReduce 的基本概念及区别
  • 2D和3D激光slam的点云去运动畸变
  • autoware激光雷达和相机标定
  • 0-1搭建springboot+vue的教务管理系统(核心源码)
  • 第一次接触自动化监测,需要付费厂家安装服务吗?比人工测量主要区别是啥?