用Python分析我國2012年人口普查數據
近來一個月在公司沒什麼任務,於是想找點事情,找點什麼好玩的。在一次的偶然中發現了國家統計局這個網站,上面應該是統計了我國各族數據。
中華人民共和國國家統計局在網站上找到了2012年人口普查的數據。
index想著反正無聊。來一波人口普查的數據分析吧。
首先看看網頁的排版。
感覺樣式還停留在幾年前。不理了,先把數據下載下來再說。那麼多數據難道要一個個的下載?不可能的。作為一個碼農(其實我是個新手)最討厭的就是重複了。
那麼又想下載下來,又不想一個個的點。怎麼辦呢。這時候肯定想到爬蟲啦。
恩,開始碼代碼。
import requestsfrom bs4 import BeautifulSoupheaders = { user-agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 }url = http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/indexce.htmweb_data = requests.get(url=url, headers=headers)Soup = BeautifulSoup(web_data.content, lxml)
requests和BeautifulSoup來一波。看看輸出
</head>
<frameset border="0" frameborder="0" framespacing="0" rows="61,*,19">
<frame name="top" noresize="" scrolling="no" src="top.htm" target="contents"/>
<frameset cols="240,*">
<frame name="contents" scrolling="auto" src="lefte.htm" target="main"/>
<frame name="main" scrolling="auto" src="notepyrightce.htm"/>
</frameset>
<frame name="bottom" noresize="" scrolling="no" src="bottom.htm" target="contents"/>
<noframes>
<body topmargin="2">
<p>此網頁使用了框架,但您的瀏覽器不支持框架。</p>
</body>
</noframes>
</frameset>
</html>
喵喵喵?什麼鬼?
原來該網站用了微軟的一個框架,好像是用來顯示Excel表格數據的。瀏覽器不支持,第一個想到的就是換UA。但是一連換了幾個UA都沒用。
這時候我去分析了網站的頁面。發現網頁分成了2部分。
我們要的數據全在lefte.htm上。拼成完整的url http://www.stats.gov.cn/tjsj/pcsj/rkpc/6rp/lefte.htm
然後寫爬蟲,下載數據。看到文件夾里滿滿的數據。
此時的我
男佔51.19%,女佔48.81%。不考慮年齡和國外的話,有差不多3%的漢子們找不到另一半(不是找不到,是沒有,沒有你懂么.jpg)
---------手動分割線-------
人口最多的省是廣東省,人口最少的是西藏。以前一直以為人口第一省是河南,沒想到居然是廣東,可能是近10年來廣東經濟的飛速發展,人口增長起來了。西北地區人口密度低的可怕,以為惡劣的環境因素,所以西藏人口最少是理所當然的。
---------手動分割線-------
圖中可以很直觀的看出全國各地人口分布的情況。
---------手動分割線-------
全國及各省性別比。可以看得出全國每個省的性別比都是超過了1的,也就是說全國各省都是男性高於女性(找到自己單身的原因了)。男女性別比最低的是江蘇1.02也高於1。但是對比其他省低,找不到妹子的可以去江蘇溜達溜達。最高的是天津,心疼天津漢子一波。
---------手動分割線-------
各地戶口人數,這裡的戶口人數估計是指的戶口本上的人數,也就是家庭規模,一家幾人。圖中可以看出最低的是北京,平均只有2.45人。而最高的是西藏,平均4.23人。
未完待續(個人感覺知乎的編輯器真難用。。。)。。。。。
推薦閱讀:
※Numpy和Pandas---數據分析的梯子
※大咖聊數據| 滴滴出行李觀:數據維度上的評估效果,最直接看LTV
※零基礎學習Python數據分析:科學計算庫NumPy(2)
※胡說江湖 2017 年 03 月 08 日的文章