Python|可视化数据分析之公众号得分

简介: Python|可视化数据分析之公众号得分

1 前言

在上周,小编在《python数据可视化之公众号得分的柱状图》一文中,将各作者的得分数据与文章数通过pyecharts进行了简单的分析处理,但是数据的分析往往是通过多个方面来看的。所以今天,小编就继续将上次得到的数据进行可视化处理。


2 准备

首先是python环境不用多说,然后是可读取excelxlrd模块和强大的可视化模块pyecharts。两者都通过pip安装即可。

pip install xlrd

pip install pyecharts

然后直接导入对应模块和类即可。

#导入模块

from pyecharts.charts import Bar

from pyecharts import options as opts

from pyecharts.charts import Line

import xlrd #读取excel的模块

数据来源还是由上一篇文章中处理的excel表格。

图2.1excel表格

图2.2上次获得的数据


3数据处理

3.1平均得分

平均数是常用的最基本的一项指标。能够很好的反应数据整体的情况。

authorScore = {}##用来储存作者与每篇文章的得分

for i in range(1,table.nrows): #遍历表格中的每一行

    look = table.row_values(i)[2] #在看

    read = table.row_values(i)[3] #阅读数

    like = table.row_values(i)[4] #点赞

    score = look + read * (1 / 10) + like * (1 / 2) #每篇文章得分

    if table.row_values(i)[1] not in allData.keys(): #判断储存数据的字典中是否有该作者

        allData.get(table.row_values(i)[1]) #没有就添加

        allData[table.row_values(i)[1]] = [1,score] #为这个作者添加值(文章数和得分)

        authorScore.get(table.row_values(i)[1])  # 没有就添加

        authorScore[table.row_values(i)[1]] = [round(score,1)]  # 为这个作者添加文章得分

    else:

        allData[table.row_values(i)[1]][0] += 1 #有就文章数加一

        allData[table.row_values(i)[1]][1] += score #累计得分

        authorScore[table.row_values(i)[1]].append(round(score,1))  #每次文章得分

bar2 = (Bar() #对柱状图进行简单配置

       .add_xaxis(author) #设置横坐标为作者

       .add_yaxis('平均得分',averageScore) #纵坐标一为文章数

       .set_global_opts( #全局配置,标题、副标题、坐标轴、主题等

        #xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),

        title_opts=opts.TitleOpts(title = '公众号得分数据分析',subtitle = '近期作者发布文章数与得分情况')

        )

    )

bar2.render("test2.html") #生成html文件

然后将得到的数据用pyecharts处理成柱状图。

图3.1平均得分柱状图

3.2 每篇文章得分

从上面的平均得分可以看出,文章发布数多,平均得分不一定就高,所以文章的质量不能单看总得分。除了平均分,还要看作者发的每篇文章得分的情况。这里小编将其处理为折线图。

xaxisData = ["第一篇","第二篇","第三篇","第四篇"]

line = (Line()

        .add_xaxis(xaxisData)

        .add_yaxis(author[0],authorScore[author[0]])

        .add_yaxis(author[1],authorScore[author[1]])

        .add_yaxis(author[2],authorScore[author[2]])

        .add_yaxis(author[3],authorScore[author[3]])

        .add_yaxis(author[4],authorScore[author[4]])

        .add_yaxis(author[5],authorScore[author[5]])

        .add_yaxis(author[6],authorScore[author[6]])

        .add_yaxis(author[7],authorScore[author[7]])

        .add_yaxis(author[8],authorScore[author[8]])

        .add_yaxis(author[9],authorScore[author[9]])

        .add_yaxis(author[10],authorScore[author[10]])

        .add_yaxis(author[11],authorScore[author[11]])

        .add_yaxis(author[12],authorScore[author[12]])

        .add_yaxis(author[13],authorScore[author[13]])

        .add_yaxis(author[14],authorScore[author[14]])

        .add_yaxis(author[15],authorScore[author[15]])

        .add_yaxis(author[16],authorScore[author[16]])

        .add_yaxis(author[17],authorScore[author[17]])

        .add_yaxis(author[18],authorScore[author[18]])

        .add_yaxis(author[19],authorScore[author[19]])

        .add_yaxis(author[20],authorScore[author[20]])

        .add_yaxis(author[21],authorScore[author[21]])

        .add_yaxis(author[22],authorScore[author[22]])

        .set_global_opts(title_opts=opts.TitleOpts(title="每篇文章得分")

        )

    )

line.render("test3.html")

图3.2

3.3方差

从上面每篇文章得分可以看出,每位作者的得分稳定性都不一样,有的文章得分很高,然后另一篇文章得分就很低。所以小编就引入方差,方差就是评判一组数据的稳定性的。越小越好。

averageScore = []#储存平均得分

variance = []#储存方差

scoreData = list(authorScore.values())

def varianceGet(scoreList,count,average):

    sum = 0

    for o in scoreList:

        sum += ((o-average)**(2))/count

return round(sum,1)

n = 0

for i in datas: #遍历数据表

    articleCount.append(i[0]) #添加文章数

    articleScore.append(round(i[1],1)) #添加的得分

    averageScore.append(round(i[1]/i[0],1))

    variance.append(varianceGet(scoreData[n],i[0],round(i[1]/i[0],1)))

    n += 1

bar3 = (Bar() #对柱状图进行简单配置

       .add_xaxis(author) #设置横坐标为作者

       .add_yaxis('方差',variance) #纵坐标一为文章数

       .set_global_opts( #全局配置,标题、副标题、坐标轴、主题等

        #xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate=-15)),

        title_opts=opts.TitleOpts(title = '公众号得分数据分析',subtitle = '近期作者发布文章数与得分情况')

        )

    )

bar3.render("test4.html") #生成html文件

图3.3方差


4 总结

以上就是小编这次对公众号得分数据的简单分析及可视化处理。数据可视化处理是对数据的整理和分析非常有效的方法。能帮助我们快速获取到众多数据之间的关系以及各数据的关键信息。当然pyecharts能做的远不止这些。要想深入学习了解,小编建议到官网学习:


目录
相关文章
|
20天前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
51 0
|
5天前
|
机器学习/深度学习 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第42天】本文将介绍如何使用Python进行数据分析和可视化。我们将从数据导入、清洗、探索性分析、建模预测,以及结果的可视化展示等方面展开讲解。通过这篇文章,你将了解到Python在数据处理和分析中的强大功能,以及如何利用这些工具来提升你的工作效率。
|
14天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
33 2
|
21天前
|
存储 数据挖掘 数据处理
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第26天】Python 是数据分析领域的热门语言,Pandas 库以其高效的数据处理功能成为数据科学家的利器。本文介绍 Pandas 在数据读取、筛选、分组、转换和合并等方面的高效技巧,并通过示例代码展示其实际应用。
31 2
|
4天前
|
数据采集 数据可视化 数据挖掘
掌握Python数据分析,解锁数据驱动的决策能力
掌握Python数据分析,解锁数据驱动的决策能力
|
12天前
|
并行计算 数据挖掘 大数据
Python数据分析实战:利用Pandas处理大数据集
Python数据分析实战:利用Pandas处理大数据集
|
12天前
|
数据采集 数据可视化 数据挖掘
利用Python进行数据分析:Pandas库实战指南
利用Python进行数据分析:Pandas库实战指南
|
14天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
14天前
|
数据采集 数据可视化 数据挖掘
使用Python进行数据分析和可视化
【10月更文挑战第33天】本文将介绍如何使用Python编程语言进行数据分析和可视化。我们将从数据清洗开始,然后进行数据探索性分析,最后使用matplotlib和seaborn库进行数据可视化。通过阅读本文,你将学会如何运用Python进行数据处理和可视化展示。
|
2天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!