一、JSON 數(shù)據(jù)準備
首先準備一份 JSON 數(shù)據(jù),這份數(shù)據(jù)共有 3560 條內(nèi)容,每條內(nèi)容結(jié)構(gòu)如下:
本示例主要是以 tz(timezone 時區(qū)) 這一字段的值,分析這份數(shù)據(jù)里時區(qū)的分布情況。
二、將 JSON 數(shù)據(jù)轉(zhuǎn)換成 Python 字典
代碼如下:
三、統(tǒng)計 tz 值分布情況,以“時區(qū):總數(shù)”的形式生成統(tǒng)計結(jié)果
要想達到這一目的,需要先將
records
轉(zhuǎn)換成
DataFrame
,
DataFrame
是
Pandas
里最重要的數(shù)據(jù)結(jié)構(gòu),它可以將數(shù)據(jù)以表格的形式表示;然后用
value_counts()
方法匯總:
四、根據(jù)統(tǒng)計結(jié)果生成條形圖
生成條形圖之前,為了數(shù)據(jù)的完整,可以給結(jié)果中缺失的時區(qū)添加一個值(這里用Missing表示),而每條時區(qū)內(nèi)容里缺失的值也需要添加一個未知的值(這里用Unknown表示):
然后使用
plot()
方法既可生成條形圖:
到這里就是一個完整的處理 JSON 數(shù)據(jù)生成統(tǒng)計結(jié)果和條形圖的例子;不過還可以對這份統(tǒng)計結(jié)果進行進一步的處理,以得到更加詳細的結(jié)果。
每條數(shù)據(jù)里還有一個 agent 值,即瀏覽器的 USER_AGENT 信息,通過這一信息可以得知所使用的操作系統(tǒng),所以 對上一步生成的統(tǒng)計結(jié)果還可以按操作系統(tǒng)的不同加以區(qū)分。
agent 值:
五、將條形圖以操作系統(tǒng)(Windows/非Windows)加以區(qū)分
不是所有的數(shù)據(jù)都有 a 這個字段,首先過濾掉沒有 agent 值的數(shù)據(jù); 然后根據(jù)時區(qū)和操作系統(tǒng)列表對數(shù)據(jù)分組,然后 對分組結(jié)果進行計數(shù):
最后選擇出現(xiàn)次數(shù)最多的10個時區(qū)的數(shù)據(jù) 生成一張條形圖:
這樣就得到了以不同操作系統(tǒng)加以區(qū)分的條形圖統(tǒng)計結(jié)果:
以上就是Python處理JSON數(shù)據(jù)并生成條形圖的全部內(nèi)容,希望本文對大家學習Python和JSON都能有所幫助。
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
