前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python分析【公众号】历史评论,看看大家的留言情况!

Python分析【公众号】历史评论,看看大家的留言情况!

作者头像
Python研究者
发布2021-07-20 14:18:36
4010
发布2021-07-20 14:18:36
举报
文章被收录于专栏:Python研究者Python研究者

大家好,我是辰哥~~~

辰哥玩公众号有一段时间了,这期文章分析一波读者的留言情况,不仅可以对公众号的各位铁粉一目了然,还可以通过分析的结果对公众号的经营进行更好的规划。如读者留言的内容通常是内容是什么?关注的点是什么等等这些。

分析目录

  1. 累计用户留言总数排名
  2. 每一篇文章留言总数排名
  3. 留言内容词云图
  4. 回复内容词云图
  5. 分析每月留言总数排名
  6. 分析月份留言数top1 & 每天留言排名
  7. 分析辰哥每月发文情况

01

预览数据

公众号后台提供数据导出功能,辰哥通过该功能可以一键导出成excel,数据内容如下:(涉及昵称等隐私部分已打码)

下面的数据主要需要用到的数据是红框中的部分(留言者昵称、留言内容、留言时间、回复内容)

代码语言:javascript
复制
import pandas as pd
from collections import Counter
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.charts import Bar
from pyecharts.charts import Pie
from pyecharts.charts import Line
from pyecharts.commons.utils import JsCode
from stylecloud import gen_stylecloud
import jieba

本文源码分析所用到的库如上,pyecharts是可视化库(其中pyechart库是1.9版本)、pandas用于读取excel数据、collections用于累加统计、stylecloud和jieba用于词云图。

#读入数据 df = pd.read_excel("留言导出-Python研究者.xlsx")

02

数据分析 & 可视化

分析1:累计用户留言总数排名

代码语言:javascript
复制
name_counts = df.groupby('留言者昵称')['留言内容'].count().sort_values(ascending=False).reset_index()
name_counts.columns = ['留言者昵称','留言内容']
name = name_counts['留言者昵称']
name = (name[0:10]).tolist()
dict_values = name_counts['留言内容']
dict_values = (dict_values[0:10]).tolist()

根据字段留言者昵称,统计每一位用户的留言总数,并进行排序,取出top10。

图中展示的是公众号历史以来用户留言总数的top10。尤其是排名靠前的几位,每次留言大多数都是前排,辰哥真心被感动到了(感动哭了)。

ps:图中的昵称是微信昵称,由于林哥的微信昵称是真名,所以就用林哥代替(平时我称呼他为林哥,哈哈哈)

分析2:每一篇文章留言总数排名

代码语言:javascript
复制
article_counts = df.groupby('文章')['留言内容'].count().sort_values(ascending=False).reset_index()
article_counts.columns = ['文章', '留言内容']
name = article_counts['文章']
name = (name[0:10]).tolist()
dict_values = article_counts['留言内容']
dict_values = (dict_values[0:10]).tolist()

对每一篇文章的评论数进行汇总,根据总数进行排名,取出评论数最多的前top10。

图中右上角的顺序是留言数从高到低,从整体上来看,这些文章要么就是具备实用性,比如识别发票、禁止复制、人像卡通化等,要么就是贴近大家的话题,比如全国大学数据、山河令、明星知识图谱等。通过留言数前top10的文章,辰哥悟出了一个道理:要想留言多又好,实用与热点少不了

分析3:留言内容词云图

代码语言:javascript
复制
contents = (df['留言内容']).tolist()
text = "".join(map(str,contents))

读取excel中留言内容,因为含有float类型或者其他多种类型的文本,因此通过map(str,contents)转为str类型。方便进行绘制词云图。通过词云图,看看读者留言内容的关键词有哪些?

图上来看,【学习】和【辰哥】这两个高频我可以理解,【这个】和【可以】一般评论内容是什么呢?ok,咱们先看来看一下含有【这个】和【可以】的评论是通常是哪些!

关键词:可以

代码语言:javascript
复制
contents = (df['留言内容']).tolist()
key_list = [str(i) for i in contents if "可以" in str(i)]

关键词:这个

代码语言:javascript
复制
contents = (df['留言内容']).tolist()
key_list = [str(i) for i in contents if "这个" in str(i)]

分析4:回复内容词云图

分析3看到的是读者的评论关键词词云图,上图是辰哥回复评论的词云图,可以看到辰哥回复的最多的是表情包(离不开表情包),比如

。此外还有就是【谢谢】、【学习】、【加油】,看来辰哥也是一个有礼貌、励志的,哈哈哈哈(自夸一下)

分析5:分析每月留言总数排名

代码语言:javascript
复制
data = (df['留言时间']).tolist()
key_list = [str(i).split("-")[0]+"-"+str(i).split("-")[1] for i in data]
result = Counter(key_list)
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
x_data = [d[i][0] for i in range(0, len(d))]
y_data = [d[i][1] for i in range(0, len(d))]
for i in range(0,len(x_data)):
    print(x_data[i],y_data[i])

分析每一个月的留言总数,统计结果如下:

2021-06 144 2021-05 99 2021-04 96 2021-03 86 2021-07 44 2021-02 26 2020-11 24 2020-12 16 2021-01 14 2020-10 13 2020-09 2 2018-05 1 2020-08 1

从图中数据上来看,从今年2月开始,每月的评论总数逐渐递增(7月还没结束,所以未排第一),这个好像也可以说得通,因为越往后,读者也多,评论数也随之增加。目前一个月评论总数最多是上个月(6月),达到了144条。7月争取原超6月的数据~~~

分析6:分析月份留言数top1 & 每天留言排名

代码语言:javascript
复制
data = (df['留言时间']).tolist()
key_list = [str(i).split(" ")[0] for i in data if "2021-06" in str(i)]
result = Counter(key_list)
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
x_data = [d[i][0].replace("2021-06-","") for i in range(0, len(d))]
y_data = [d[i][1] for i in range(0, len(d))]
for i in range(0,len(x_data)):
    print(x_data[i],y_data[i])

在分析5中,得知2021年6月的评论总数是最多的(144),接着分析该月里,每天的评论数据具体是多少?

可以看到在6月30号的时候评论数最多(刚好万粉的时候,所以评论较多),从整体上来看,一天的评论数均值是6或者7。

分析7:分析辰哥每月发文情况

代码语言:javascript
复制
data = (df['发文时间']).tolist()
month_data = []
for i in data:
    if i not in month_data:
        month_data.append(i)
key_list = [str(i).split("-")[0] + "-" + str(i).split("-")[1] for i in month_data]
result = Counter(key_list)
d = sorted(result.items(), key=lambda x: x[1], reverse=True)
x_data = [d[i][0] for i in range(0, len(d))]
y_data = [d[i][1] for i in range(0, len(d))]

通过excel中的发文时间,可以统计到辰哥每一个月的发文数量。

图中可以看到辰哥在近几个月(今年3月至今),更新频率保持稳定,大约是每一个月发15篇原创(评论里面仅统计原创文章),相当于是隔天更新一次。

03

小结

辰哥对公众号一直以来的评论进行了一次分析,主要是从7个方面去对评论数据进行了分析 & 可视化~~~

分析目录

  1. 累计用户留言总数排名
  2. 每一篇文章留言总数排名
  3. 留言内容词云图
  4. 回复内容词云图
  5. 分析每月留言总数排名
  6. 分析月份留言数top1 & 每天留言排名
  7. 分析辰哥每月发文情况
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python研究者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分析1:累计用户留言总数排名
  • 分析2:每一篇文章留言总数排名
  • 分析3:留言内容词云图
  • 分析4:回复内容词云图
  • 分析5:分析每月留言总数排名
  • 分析6:分析月份留言数top1 & 每天留言排名
  • 分析7:分析辰哥每月发文情况
相关产品与服务
腾讯云图数据可视化
腾讯云图数据可视化(Tencent Cloud Visualization) 是一站式数据可视化展示平台,旨在帮助用户快速通过可视化图表展示大量数据,低门槛快速打造出专业大屏数据展示。精心预设多种行业模板,极致展示数据魅力。采用拖拽式自由布局,全图形化编辑,快速可视化制作。腾讯云图数据可视化支持多种数据来源配置,支持数据实时同步更新,同时基于 Web 页面渲染,可灵活投屏多种屏幕终端。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档