別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

最近總有朋友在問我,數據分析和可視化展示已經入門了,想練手但沒有數據怎麼辦?

不用怕!鳥哥今天給大家推薦1個存在大量數據的網站,並把詳細教程寫出來!

網站地址為:


<code>https://data.stats.gov.cn//<code>
別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

這裡有你需要的各類數據,即全面又準確

下面以分省財政收入數據為例,教你用python爬取各省數據:

1.抓包獲取數據接口

打開火狐瀏覽器抓包工具,按下圖方式操作,可以獲得數據接口:

別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

返回的數據中,有3個重點數據,'110000'為省市編碼,每個省都有1個對應的編碼,'2019'代表年份,data代表財政收入(億元)

別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

將數據往下拉,還能看到省市和編碼的

別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

先記住這些,後續編程要用到

2.python模擬數據請求

這一步很容易理解,但是正常requests模擬請求會出現以下錯誤:

別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

主要是因為網站不知道為什麼會顯示不安全鏈接,在瀏覽器測試如下:

別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

具體哪裡不安全咱也不知道,解決辦法是直接忽略驗證就行,代碼如下:

<code>import requests
import json
import re
import pandas as pd
url='https://data.stats.gov.cn/easyquery.htm?m=QueryData&dbcode=fsnd&rowcode=reg&colcode=sj&wds=%5B%7B%22wdcode%22%3A%22zb%22%2C%22valuecode%22%3A%22A080101%22%7D%5D&dfwds=%5B%7B%22wdcode%22%3A%22sj%22%2C%22valuecode%22%3A%22LAST20%22%7D%5D&k1=1601122489572'
headers={'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0'}
response=requests.get(url, headers=headers, verify=False)
results=json.loads(response.text)
/<code>

3.整理數據為DataFrame格式

首先將省市名字和編碼的對應關係存入字典中:

<code>cityTocodes={}
for i in results['returndata']['wdnodes'][1]['nodes']:
    cityTocodes[i['code']]=i['cname']
print(cityTocodes)
/<code>
別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

然後將數據存入二維列表中:

<code>codes=[] 

data = []
datas = []
for i in results['returndata']['datanodes']:
    pattern=re.compile(r'zb\\.A080101_reg\\.(\\d+)_sj\\.(\\d+)')
    code=re.findall(pattern, i['code'])[0][0]
    if code not in codes:
        codes.append(code)
        datas.append(data)
        data=[]
    data.append(i['data']['data'])
print(datas)
/<code>
別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

最後將數據轉成DataFrame格式:

<code>years=list(range(2000,2020))[::-1]
datas.append(data)

citys=[cityTocodes[i] for i in codes]
city_datas=pd.DataFrame(datas[1:], columns=years, index=citys)
/<code>

4.將數據保存至表格

<code>city_datas.to_excel('全國各省財政收入.xlsx')
/<code>
別再說沒有數據分析練手的數據了,這個網站數據既全面又準確

網站內其他數據也可按照此方法獲取

-完-



完整代碼請關注公眾號【python數據分析之禪】並回復練手數據獲取


分享到:


相關文章: