澳門住宅成交統計可視化
本文會使用python 中的pandas 和matplotlib 程式庫對澳門2019-2020住宅買賣成交的資料以圖像形式展示。 住宅每月的成交數目可以從財政局網站下載 而本文中所有的程式碼及資料可在我的github下載。 整個數據可視化成果可在https://nbviewer.jupyter.org/github/Isaac234517/Macau-House-Analysis/blob/master/house_trending.ipynb 瀏覽。
資料下載
前往澳門財政局網站, 下載2019年全年及 2020 1-4月的住宅成交數據。
澳門財政局每月也會把上月登記的不動產轉移在每月月初及月中公布。 下載所有資料後 需要為資料檔案重命名並把檔案放在對應的資料夾下。 資料夾以年份命名,如(2019,2020..) 檔案名稱以月份_(上/下半月)命名,如2019資料夾下的1_1 excel 檔案 是2019 年1月上半月的住宅成交量數據。
可視化工作安裝
在大家著手開始可視化工作前, 大家的電腦需要安裝Python 3.7, jupyter notebook, pandas numpy 和matplotlib。 最為簡單的方式是透過安裝Ananconda 套件一併安裝以上的程式。可視化
下載數據後,首先先看看數據格式
我們這次是要把每月成交的數量以區域劃分圖表表示, 原則上只需要這需要區域及成交量便可。 但我們還是把區域、大廈名稱、成交量和平均樓價保留。 並把欄位名稱換成英文。
函式會把資料表的欄位名稱更改及加入“year”和“month” 欄位。最後返回一個包含Year, month,Area, Building_Name, Volue, Price/㎡ 的data frame.
在jupter_notebook 中我還在檔案開端加入
matplotlib.rcParams['font.sans-serif'] = ['Microsoft JhengHei']
matplotlib.rcParams['font.family'] ='sans-serif'
主要目的是讓中文於由matplotlib Library 繪畫的圖的中文不會顯示亂碼。
然後,先查看返回的data frame的資料是否正確, 下圖是2020年1月上半月的數據。
2020年1月上半月
然後分別合併2020年1月上半月及下半月以及2019年1月上半月及下半月的資料至同一個dataframe中。
最後使用groupby 把成交量按區域劃分併加總。 及把2020年1月的資料合併至2019年的Dataframe中以便以圖表形式表示。完成以上步驟, 可得出如下資料
最後使用matplotlib中的plot 函式繪畫出方形圖
我們把xtick 的label 旋轉25度原因是label太長不好顯示
成果圖如下:
接著, 我們重複上述的步驟,便可得出2月、3月及4月的成交量方形圖。
2月樓宇成交量
3月樓宇成交量
4月樓宇成交量
接著,繪畫出2019年全年樓宇成交量的線形圖。
首先列出2019全年的資料檔案。 然後構建一個空的Data frame。 再利用for loop 把資料讀出並存放在data frame中。 之後可使用groupby 計算出每月份的成交量
結果如下:
最後利用matplotlib中的plot繪圖
最後,再比較一下2019年第一季與2020年第一季的樓宇成交量,並繪出線形圖
圖中橙色是2019年,藍色是2020年。 從圖中可見2019年第一季每月的樓宇成交量也比2020第一季的每月高。 2020年第一季相比2019年第一季的樓宇成交量是下降的。 可能是因為疫情關係吧! 但可見2020年三月份的樓宇成交量是高於首兩個月。
總結
本文簡單利用澳門財政局的資料把2019年及2020年的住宅成交量以圖表顯示出來。 而且也只是使用了較初階的函式。 應該適合剛開始著手使用Python實現數據可視化的讀者們。 最後以下會列出一些我覺得適合新手學習數據可視化Library的教學資源。
教學資料
1. Pandas :https://github.com/datawhalechina/joyful-pandas 常用用法
2. Python Data analysis https://www.amazon.com/Python-Data-Analysis-Wrangling-IPython-ebook/dp/B075X4LT6K
3. Numpy https://mp.weixin.qq.com/s?__biz=MzUyMDk1MDY2MQ==&mid=2247483785&idx=1&sn=19b21a941561194730c063153e236e96&scene=21#wechat_redirect
4. Matplotlib https://github.com/rougier/matplotlib-tutorial
2. Python Data analysis https://www.amazon.com/Python-Data-Analysis-Wrangling-IPython-ebook/dp/B075X4LT6K
3. Numpy https://mp.weixin.qq.com/s?__biz=MzUyMDk1MDY2MQ==&mid=2247483785&idx=1&sn=19b21a941561194730c063153e236e96&scene=21#wechat_redirect
4. Matplotlib https://github.com/rougier/matplotlib-tutorial
留言
張貼留言