Python數(shù)據(jù)可視化:25年GDP之變
說(shuō)實(shí)話,這一期起的有點(diǎn)標(biāo)題黨了。
用到的Python知識(shí)并不多,只是利用Python對(duì)數(shù)據(jù)進(jìn)行規(guī)整。
最多的應(yīng)該是用大佬造的輪子,基于D3.js的數(shù)據(jù)可視化項(xiàng)目。
附上大佬的GitHub地址,有興趣的小伙伴可以自行去圍觀。
- https://github.com/Jannchie/Historical-ranking-data-visualization-based-on-d3.js
最后我利用大佬造的輪子,成功實(shí)現(xiàn)了25年間各省市GDP數(shù)據(jù)的可視化。
于是乎,你不就對(duì)各省市的GDP了解的一清二楚。
數(shù)據(jù)來(lái)源來(lái)自國(guó)家統(tǒng)計(jì)局。
附上相關(guān)鏈接,其實(shí)里面還有好多其他的數(shù)據(jù),非常適合拿去練手。
- http://data.stats.gov.cn/easyquery.htm?cn=E0103
本次的GDP數(shù)據(jù)如下,為各地區(qū)生產(chǎn)總值。
時(shí)間是1993年-2017年,共25年。
網(wǎng)站提供CSV文件下載,但是還是需要規(guī)整一下數(shù)據(jù)。
因?yàn)榇罄性斓妮喿訉?duì)數(shù)據(jù)有要求。
同時(shí)還需要注意一下編碼問(wèn)題,這里的CSV文件需要用gbk編碼。
下面是從統(tǒng)計(jì)局下載下來(lái)的CSV數(shù)據(jù)。
我偷了個(gè)懶,直接就先在表格里刪除了前三行,如下。
接下來(lái)便是用Python對(duì)數(shù)據(jù)進(jìn)行規(guī)整,代碼如下。
- import pandas as pd
- # 讀取數(shù)據(jù)
- df = pd.read_csv('gdp.csv', encoding='utf-8')
- (names, values, dates) = ([], [], [])
- # 記得去除地區(qū)這個(gè)列名,遍歷年份
- for i in df.columns[1:]:
- for j, k in zip(df[i], df['地區(qū)']):
- # 輸出地區(qū)、GDP值、年份數(shù)據(jù)
- print(k, j, i)
- names.append(k)
- values.append(int(j))
- dates.append(int(i.replace('年', '')))
- # 生成DateFrame格式的數(shù)據(jù)
- data = {
- 'name': names,
- 'type': '',
- 'value': values,
- 'date': dates
- }
- # 將數(shù)據(jù)轉(zhuǎn)存為新的CSV文件
- frame = pd.DataFrame(data)
- # 設(shè)置編碼格式,避免亂碼
- frame.to_csv('gdp_last.csv', encoding='utf_8_sig')
獲取的CSV數(shù)據(jù)如下。
和大佬造的輪子所需數(shù)據(jù)格式是一樣的,這里我不設(shè)置類型。
接下來(lái)就是克隆大佬的項(xiàng)目代碼到你的計(jì)算機(jī)里。
這里以前我只是上傳代碼,沒(méi)有去下載項(xiàng)目代碼,所以不是很清楚怎么下載下來(lái)。
經(jīng)過(guò)這次算是學(xué)會(huì)了。
首先安裝一下GitHub Desktop,然后用你的GitHub賬號(hào)登陸它。
配置一下你的用戶名及綁定郵箱,便能克隆其他人的項(xiàng)目到你的本地。
然后打開(kāi)src目錄下的bargraph.html,瀏覽器就會(huì)打開(kāi)一個(gè)網(wǎng)頁(yè)。
在網(wǎng)頁(yè)里點(diǎn)擊選擇文件,把文件上傳上去就成功了。
網(wǎng)頁(yè)上就會(huì)有動(dòng)態(tài)視頻出現(xiàn),如下。
是不是發(fā)現(xiàn)很有意思,哈哈。
這里我根據(jù)自己個(gè)人需要,對(duì)大佬的輪子進(jìn)行了修改。
修改的地方是在src目錄下的config.js文件里。
主要是一些小細(xì)節(jié)的修改,比如最多顯示的條目數(shù),標(biāo)題,以及條目的顏色。
修改的文件及我的CSV文件都已經(jīng)上傳到GitHub上頭了。
有興趣的小伙伴可以自行去圍觀,通過(guò)閱讀原文即可直接到我的GitHub。