赞
踩
评论是我几天前爬取的,歌曲是周董的《轨迹》,一开始想使用snownlp作情感分析,但我看了下评论内容,情感倾向很明显,没有分析的必要。这些数据都带有评论时间,也算是时间序列数据,正好拿它作可视化展示。
本记录针对爬取的QQ音乐评论作可视化展示,按时间颗粒度划分如下:
年份可视化 聚合每年产生的评论数据
月份可视化 聚合每月产生的评论数据
每日可视化 将每日产生的评论数据可视化
时段可视化 聚合一天之内每时段的评论数据,时段按时间线分为:凌晨、上午、中午、下午、晚上和深夜
数据预处理
首先来看数据,总共有12673条记录,包含三个维度,分别为昵称、评论内容、评论日期。通过info函数查看信息,发现三个维度非空数目不一致,每个维度均有缺失值。如果日期缺失,势必会影响接下来的聚合,使用ffill方法向前填充,将缺失值的前一个值填充为自己的值。
info查看信息
填充缺失值
年份可视化
使用resample方法向下采样,然后聚合,统计每年的评论个数。清洗好数据后,统计每年产生的数量,之后使用pyecharts绘制条形图,它是基于百度开源的JavaScript绘图库echarts的Python封装,感兴趣的同学请移步至官方文档,此处不再详细介绍。
年份统计条形图
最早只爬取到2017年的评论,最新是2021年4月27日,四年间年评论量分布不均匀,2017年最少,最大还不知道,因为2021年还没完呢。
月份可视化
同一个函数进行向下重采样,只是参数不一致而已,聚合统计后使用matploblib绘制折线图统计图,代码如下:
每日可视化
还是那个resample函数,将每年的每一天中产生的评论聚合,共五年(2017-2021),但2017年和2021年不全,数据记录有点大,使用日历图作可视化,代码如下:
时段可视化
将一天24个小时分为6个时段,划分如下:
03:00----06:00----凌晨
06:00----12:00----下午
12:00----14:00----中午
14:00----19:00----下午
19:00----22:00----晚上
22:00----03:00----深夜
每条记录包含日期和时间,精确到分钟,如何把小时数给提取出来呢,Pandas目前我好像没有学到这个技能或者说没有(肯定是我没有学到。我的方法是把每条日期记录当成字符串,然后转换成datetime对象,再将转换成时间字符串时仅保留小时数,最后转换为int64类型(转的头都晕了)。
最后一步就是遍历小时数,判断属于哪一个时段,该过程需要使用apply函数,并且传入一个自定义一个函数用来判断时段。
右边两列就是小时数和时段标签
绘制南丁格尔图
基于pyecharts
是不是人在深夜时情绪会更丰富呢?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。