季旻霞 石弘利
金陵科技學院,中國·江蘇 南京 211169
Python;數(shù)據(jù)分析;Pandas;數(shù)據(jù)可視化;Matplotlib;plotly
2020年新冠在全球蔓延,不少人因為新冠失去生命與親人。針對這一情況,我們必須足夠重視并采取一定的行為來改善。那我們應如何改善?隨著云時代的來臨,大數(shù)據(jù)吸引了越來越多的關(guān)注,大數(shù)據(jù)這一詞也越來越多被提及。在這次的新冠疫情中,大數(shù)據(jù)就發(fā)揮的無可替代的作用,分析這些數(shù)據(jù)內(nèi)部所蘊含的規(guī)律,預測相關(guān)運行趨勢,得出有效結(jié)論,從而預防病毒的肆意蔓延。
Python 是一個高層次的結(jié)合了解釋性、編譯性、互動性和面向?qū)ο蟮哪_本語言,python 簡單開源易上手,擁有豐富強大的庫,流程可控,工作高效。
兩種方式可以獲取到此次疫情數(shù)據(jù),第一種是爬蟲,爬蟲因本身具備的突出優(yōu)勢,被廣泛用于數(shù)據(jù)信息采集中爬蟲提取頁面源代碼[1]。主要有兩種方法:requests 庫和selenium庫。requests 適合提取需要的元素信息直接保存在頁面的源代碼中,它提取頁面快,但不適合用于提取元素不是加載在源代碼的項目的情況下。第二種是通過akshare 庫,akshare 是基于python 的開源數(shù)據(jù)接口庫。這里筆者用的是第一種方法,導入相關(guān)部分數(shù)據(jù)來進行數(shù)據(jù)分析。筆者使用的是requests庫,將數(shù)據(jù)導入之后,由json 格式轉(zhuǎn)換為方便分析的dataframe 格式,源數(shù)據(jù)由于API 采集的機制,包含大量重復數(shù)據(jù),無效數(shù)據(jù),缺失數(shù)據(jù),所以接下來要對這些數(shù)據(jù)進行處理[2]。
數(shù)據(jù)處理方面,Python 中的插件Pandas 功能突出。Pandas十分方便快捷,主要包括數(shù)據(jù)輸入輸出,數(shù)據(jù)清洗處理,數(shù)據(jù)挖掘等。Pandas 擁有強大數(shù)據(jù)清理功能,可以去重復值,通過刪除或者填補等處理缺失值和異常值。論文日期不是標準表示,應將它化為年月日的方式,并使用loc 根據(jù)index 索引來提取月日。并且論文用默認索引不是最佳方案,可以以更新日期作為索引,表一為數(shù)據(jù)處理后的結(jié)果。如下為處理的主要代碼:
圖1 數(shù)據(jù)處理后的結(jié)果
數(shù)據(jù)可視化有很多方式,可以通過excel、matplotlib、seaborn、plotly 以及詞云圖等方式給我們展示數(shù)據(jù)的數(shù)量以及發(fā)展趨勢,對可視化結(jié)果進行分析,從中提取出有效信息,得出有用結(jié)論供人們學習以及商業(yè)參考。在論文的疫情數(shù)據(jù)中,我們可以通過分析得出哪些地區(qū)是重災區(qū),需要引起人們的重視,嚴格控制人流量預防疫情快速蔓延,提醒相鄰地區(qū)注意防范等。
在論文中,筆者主要使用了plotly 方法繪圖。Plotly 是一個非常著名且強大的開源數(shù)據(jù)可視化框架,它通過構(gòu)建基于瀏覽器顯示的web 形式的可交互圖表來展示信息,可創(chuàng)建多達數(shù)十種精美的圖表和地圖,Matplotlib 存在不夠美觀、靜態(tài)性、不易分享等缺點,限制了Python在數(shù)據(jù)可視化中的發(fā)展。為了解決這個問題,新型的動態(tài)可視化開源模塊Plotly 應運而生,Plotly 具有動態(tài)、美觀、易用、種類豐富等特性。
圖2 各區(qū)塊死亡人數(shù)
上圖是各區(qū)塊的死亡人數(shù),使用了groupby 分組計算出區(qū)塊死亡人數(shù)。從圖中可見,北美洲情況最嚴重,應重點注意。中國相關(guān)部門應嚴格把控輸入輸出來控制疫情在區(qū)塊間的傳播。
圖3 各地區(qū)的確診人數(shù)
上圖是使用plotly 繪制的折線圖,折線圖易于展現(xiàn)趨勢,上圖清晰可見美國疫情的嚴重性。
圖4 08-06 各州確診情況
圖5 08-06 中國確診人數(shù)
可視化核心代碼:
圖6 08-05 疫情較嚴重區(qū)域情況
筆者使用了matplotlib 繪制折線圖來呈現(xiàn)疫情情況描繪在八月五號重要疫情較嚴重地區(qū)疫情發(fā)展趨勢,先通過數(shù)據(jù)篩選,再使用可視化繪圖[3]。下圖可以明顯發(fā)現(xiàn)香港地區(qū)疫情較為嚴重。居住香港地區(qū)人應注意減少外出,嚴格佩戴口罩,相鄰地區(qū)也要引起注意和重視。其他地區(qū)人應盡量避免出入疫情嚴重區(qū)。其中,主要代碼為:
圖7 08-06 疫情詞云圖
詞云圖可以有效劃重點,高亮出重要信息呈現(xiàn)出來。論文可以顯示出中國疫情較嚴重地區(qū)。
隨著網(wǎng)絡(luò)信息化的飛速發(fā)展,人們面對越來越多紛繁復雜的數(shù)據(jù)時,需要分析處理,需要利用數(shù)據(jù)可視化后的結(jié)果指導和解決各種學習工作中的問題。論文利用python 語言作為編程基礎(chǔ),利用pandas 進行數(shù)據(jù)分析以及matplotlib 和plotly 來進行數(shù)據(jù)可視化,由此來提取出有效信息[3]。