溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python怎么分析微信公眾號(hào)數(shù)據(jù)

發(fā)布時(shí)間:2021-11-25 13:45:15 來(lái)源:億速云 閱讀:154 作者:iii 欄目:大數(shù)據(jù)

這篇文章主要講解了“Python怎么分析微信公眾號(hào)數(shù)據(jù)”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Python怎么分析微信公眾號(hào)數(shù)據(jù)”吧!

1 前言

在日益發(fā)展的社會(huì),人們每天都會(huì)產(chǎn)生大量的數(shù)據(jù),很多工作中也常常涉及到對(duì)數(shù)據(jù)的處理。而眾多的數(shù)據(jù)讓人頭昏眼花,所以需要對(duì)數(shù)據(jù)進(jìn)行可視化。將數(shù)據(jù)轉(zhuǎn)換為大腦更容易接受的圖表形式。所以有了后來(lái)的excel表格,它在數(shù)據(jù)的可視化處理方面非常強(qiáng)大。但是隨著數(shù)據(jù)量的增大,用excel往往都是重復(fù)之前的步驟。效率也就變得很低了,還容易枯燥。于是,python的可視化數(shù)據(jù)來(lái)了,在重復(fù)這件事上,相信沒有誰(shuí)可以比程序來(lái)得更快更好。所以今天小編就通過(guò)實(shí)例給大家簡(jiǎn)單展示下數(shù)據(jù)的可視化處理。

2 模塊準(zhǔn)備

首先是python環(huán)境不用多說(shuō),然后是可讀取excel的xlrd模塊和強(qiáng)大的可視化模塊pyecharts。兩者都通過(guò)pip安裝即可。

pip install xlrd

pip install pyecharts

然后直接導(dǎo)入對(duì)應(yīng)模塊和類即可。

#導(dǎo)入模塊

from pyecharts.charts import Bar

from pyecharts import options as opts

import xlrd #讀取excel的模塊

3 具體步驟

3.1 讀取excel表格

Python怎么分析微信公眾號(hào)數(shù)據(jù)

為了方便首先將準(zhǔn)備好的excel表格放置在py文件同目錄下,然后運(yùn)行以下代碼即可讀取。

data = xlrd.open_workbook("gongzhonghao.xls") #打開工作表

table = data.sheets()[0] #找到excel中對(duì)應(yīng)的sheet表,這里是第一個(gè)

讀取excel表格的行和列都是以列表的形式返回的。

3.2 數(shù)據(jù)分析

通過(guò)以上代碼讀取到對(duì)應(yīng)的excel表格后,在通過(guò)簡(jiǎn)單的代碼對(duì)數(shù)據(jù)進(jìn)行處理。首先要知道一個(gè)柱狀圖有什么。柱狀圖有x、y軸。一般x軸只有一條數(shù)據(jù),所以通過(guò)上面excel表中的內(nèi)容可以得出用作者作為x軸最好。然后小編這次的目的是統(tǒng)計(jì)每個(gè)作者發(fā)布的文章數(shù)和文章總得分(總得分=每篇文章的在看數(shù)加閱讀數(shù)的1/10和點(diǎn)贊數(shù)的1/2)。所以就可以以文章數(shù)和得分作為y軸。

allData = {} #用來(lái)儲(chǔ)存作者與文章的數(shù)據(jù)

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

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

    read = table.row_values(i)[3] #閱讀數(shù)

    like = table.row_values(i)[4] #點(diǎn)贊

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

    if table.row_values(i)[1] not in allData.keys(): #判斷儲(chǔ)存數(shù)據(jù)的字典中是否有該作者

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

        allData[table.row_values(i)[1]] = [1,score] #為這個(gè)作者添加值(文章數(shù)和得分)

    else:

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

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

author = list(allData.keys()) #獲取作者表

datas = list(allData.values()) #獲取數(shù)據(jù)表

articleCount = [] #儲(chǔ)存文章數(shù)

articleScore = [] #儲(chǔ)存得分

for i in datas: #遍歷數(shù)據(jù)表

    articleCount.append(i[0]) #添加文章數(shù)

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

上面的代碼簡(jiǎn)單的運(yùn)用了python的遍歷和字典的知識(shí)。由于本文的重點(diǎn)是可視化,所以這里就不做詳細(xì)說(shuō)明了。

3.3可視化

通過(guò)上面的數(shù)據(jù)處理,就已經(jīng)拿到了x,y軸的數(shù)據(jù)了,接下來(lái)就直接使用pyecharts模塊進(jìn)行渲染配置。

bar = (Bar() #對(duì)柱狀圖進(jìn)行簡(jiǎn)單配置

       .add_xaxis(author) #設(shè)置橫坐標(biāo)為作者

       .add_yaxis('文章數(shù)',articleCount) #縱坐標(biāo)一為文章數(shù)

       .add_yaxis('得分',articleScore) #縱坐標(biāo)二為得分

       .set_global_opts( #全局配置,標(biāo)題、副標(biāo)題、坐標(biāo)軸、主題等

        title_opts=opts.TitleOpts(title = '公眾號(hào)得分?jǐn)?shù)據(jù)分析',subtitle = '近期作者發(fā)布文章數(shù)與得分情況')

        )

    )

bar.render() #生成html文件

Python怎么分析微信公眾號(hào)數(shù)據(jù)

4 完整代碼

#導(dǎo)入模塊

from pyecharts.charts import Bar

from pyecharts import options as opts

import xlrd #讀取excel的模塊

data = xlrd.open_workbook("gongzhonghao.xls") #打開工作表

table = data.sheets()[0] #找到excel中對(duì)應(yīng)的sheet表,這里是第一個(gè)

allData = {} #用來(lái)儲(chǔ)存作者與文章的數(shù)據(jù)

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

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

    read = table.row_values(i)[3] #閱讀數(shù)

    like = table.row_values(i)[4] #點(diǎn)贊

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

    if table.row_values(i)[1] not in allData.keys(): #判斷儲(chǔ)存數(shù)據(jù)的字典中是否有該作者

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

        allData[table.row_values(i)[1]] = [1,score] #為這個(gè)作者添加值(文章數(shù)和得分)

    else:

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

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

author = list(allData.keys()) #獲取作者表

datas = list(allData.values()) #獲取數(shù)據(jù)表

articleCount = [] #儲(chǔ)存文章數(shù)

articleScore = [] #儲(chǔ)存得分

for i in datas: #遍歷數(shù)據(jù)表

    articleCount.append(i[0]) #添加文章數(shù)

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

bar = (Bar() #對(duì)柱狀圖進(jìn)行簡(jiǎn)單配置

       .add_xaxis(author) #設(shè)置橫坐標(biāo)為作者

       .add_yaxis('文章數(shù)',articleCount) #縱坐標(biāo)一為文章數(shù)

       .add_yaxis('得分',articleScore) #縱坐標(biāo)二為得分

       .set_global_opts( #全局配置,標(biāo)題、副標(biāo)題、坐標(biāo)軸、主題等

        title_opts=opts.TitleOpts(title = '公眾號(hào)得分?jǐn)?shù)據(jù)分析',subtitle = '近期作者發(fā)布文章數(shù)與得分情況')

        )

    )

bar.render() #生成html文件

感謝各位的閱讀,以上就是“Python怎么分析微信公眾號(hào)數(shù)據(jù)”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)Python怎么分析微信公眾號(hào)數(shù)據(jù)這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI