{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"房價分析.ipynb","provenance":[],"collapsed_sections":[],"mount_file_id":"1dKY6eXyJryR2NgUb8OKDXO1WLlWVvqXa","authorship_tag":"ABX9TyPKF3f0WJCxc2BYHRl1ZISf"},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","metadata":{"id":"Tp7siPCSLeF7"},"source":["# 實價登錄房價分析\n","\n","> The code was download from the following youtube page. \n","\n","#### Reference \n","* [【實價登錄】房地產價格分析 | 房子這樣買最保值! | 用3張圖表決定黃金地段 | FinLab 財經實驗室](https://youtu.be/BWzOlsM4AXs)\n"]},{"cell_type":"code","metadata":{"id":"_eQH1__PZcLP","colab":{"base_uri":"https://localhost:8080/"},"executionInfo":{"status":"ok","timestamp":1632313741365,"user_tz":-480,"elapsed":300,"user":{"displayName":"林得勝","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10265360023258000577"}},"outputId":"70cfe921-257e-4657-e677-a1165cd7232d"},"source":["from google.colab import drive\n","drive.mount('/content/drive')"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount(\"/content/drive\", force_remount=True).\n"]}]},{"cell_type":"markdown","metadata":{"id":"rNpKV6iJO36t"},"source":["### 下載實價登入"]},{"cell_type":"code","metadata":{"id":"xY-bPTpoLw46"},"source":["import requests\n","import os\n","import zipfile\n","import time"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"NmhNiWIHtGdy"},"source":["You should\n","1. mount your google drive first, and then key-in the correct path of your folder. \n"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"CwqRfapfNza8","executionInfo":{"status":"ok","timestamp":1632313745770,"user_tz":-480,"elapsed":306,"user":{"displayName":"林得勝","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10265360023258000577"}},"outputId":"ab511aa8-a7f1-4fbf-aca1-d40c05837c43"},"source":["# Go to your google drive folder\n","os.chdir('/content/drive/MyDrive/Colab Notebooks/Intro_machine_learning/House_price_analysis') \n","os.listdir()"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["['1021.zip',\n"," 'real_estate1021',\n"," '1022.zip',\n"," 'real_estate1022',\n"," '1023.zip',\n"," 'real_estate1023',\n"," '1024.zip',\n"," 'real_estate1024',\n"," '1031.zip',\n"," 'real_estate1031',\n"," '1032.zip',\n"," 'real_estate1032',\n"," '1033.zip',\n"," 'real_estate1033',\n"," '1034.zip',\n"," 'real_estate1034',\n"," '1041.zip',\n"," 'real_estate1041',\n"," '1042.zip',\n"," 'real_estate1042',\n"," '1043.zip',\n"," 'real_estate1043',\n"," '1044.zip',\n"," 'real_estate1044',\n"," '1051.zip',\n"," 'real_estate1051',\n"," '1052.zip',\n"," 'real_estate1052',\n"," '1053.zip',\n"," 'real_estate1053',\n"," '1054.zip',\n"," 'real_estate1054',\n"," '1061.zip',\n"," 'real_estate1061',\n"," '1062.zip',\n"," 'real_estate1062',\n"," '1063.zip',\n"," 'real_estate1063',\n"," '1064.zip',\n"," 'real_estate1064',\n"," '1071.zip',\n"," 'real_estate1071',\n"," '1072.zip',\n"," 'real_estate1072',\n"," '1073.zip',\n"," 'real_estate1073',\n"," '1074.zip',\n"," 'real_estate1074',\n"," '1081.zip',\n"," 'real_estate1081',\n"," '1082.zip',\n"," 'real_estate1082',\n"," '1083.zip',\n"," 'real_estate1083',\n"," '1084.zip',\n"," 'real_estate1084',\n"," '1091.zip',\n"," 'real_estate1091',\n"," '1092.zip',\n"," 'real_estate1092',\n"," '1093.zip',\n"," 'real_estate1093',\n"," '1094.zip',\n"," 'real_estate1094',\n"," '房價分析.ipynb']"]},"metadata":{},"execution_count":3}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"eP7cs5-6KEO9","executionInfo":{"elapsed":641122,"status":"ok","timestamp":1631437654696,"user":{"displayName":"林得勝","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10265360023258000577"},"user_tz":-480},"outputId":"222e935f-d85e-4df6-d476-130955a574fc"},"source":["# Crawl data\n","# Better store in your GDrive, so don't need to re-do it every time\n","def real_estate_crawler(year, season):\n"," if year > 1000:\n"," year -= 1911\n","\n"," # download real estate zip file\n"," res = requests.get(\"https://plvr.land.moi.gov.tw//DownloadSeason?season=\"+str(year)+\"S\"+str(season)+\"&type=zip&fileName=lvr_landcsv.zip\")\n","\n"," # save content to file\n"," fname = str(year)+str(season)+'.zip'\n"," open(fname, 'wb').write(res.content)\n","\n"," # make additional folder for files to extract\n"," folder = 'real_estate' + str(year) + str(season)\n"," if not os.path.isdir(folder):\n"," os.mkdir(folder)\n","\n"," # extract files to the folder\n"," with zipfile.ZipFile(fname, 'r') as zip_ref:\n"," zip_ref.extractall(folder)\n","\n"," time.sleep(10)\n","\n","for year in range(102, 110):\n"," for season in range(1,5):\n"," print('crawl ', year, 'Q', season)\n"," real_estate_crawler(year, season)"],"execution_count":null,"outputs":[{"name":"stdout","output_type":"stream","text":["crawl 102 Q 1\n","crawl 102 Q 2\n","crawl 102 Q 3\n","crawl 102 Q 4\n","crawl 103 Q 1\n","crawl 103 Q 2\n","crawl 103 Q 3\n","crawl 103 Q 4\n","crawl 104 Q 1\n","crawl 104 Q 2\n","crawl 104 Q 3\n","crawl 104 Q 4\n","crawl 105 Q 1\n","crawl 105 Q 2\n","crawl 105 Q 3\n","crawl 105 Q 4\n","crawl 106 Q 1\n","crawl 106 Q 2\n","crawl 106 Q 3\n","crawl 106 Q 4\n","crawl 107 Q 1\n","crawl 107 Q 2\n","crawl 107 Q 3\n","crawl 107 Q 4\n","crawl 108 Q 1\n","crawl 108 Q 2\n","crawl 108 Q 3\n","crawl 108 Q 4\n","crawl 109 Q 1\n","crawl 109 Q 2\n","crawl 109 Q 3\n","crawl 109 Q 4\n"]}]},{"cell_type":"markdown","metadata":{"id":"tqzpYhAhO82v"},"source":["### Colab 進行matplotlib繪圖時顯示繁體中文"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"KL97bqpQLtMh","executionInfo":{"status":"ok","timestamp":1632313755779,"user_tz":-480,"elapsed":5913,"user":{"displayName":"林得勝","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10265360023258000577"}},"outputId":"6b9b3cfb-8f9c-4551-b6f0-cded2ea70178"},"source":["## 下載台北思源黑體並命名taipei_sans_tc_beta.ttf,移至指定路徑\n","!wget -O taipei_sans_tc_beta.ttf https://drive.google.com/uc?id=1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_&export=download\n","!mv taipei_sans_tc_beta.ttf /usr/local/lib/python3.7/dist-packages/matplotlib//mpl-data/fonts/ttf\n","\n","# title 數據分析\n","from matplotlib.font_manager import FontProperties\n","import matplotlib.pyplot as plt \n","\n","# 自定義字體變數\n","myfont = FontProperties(fname='/usr/local/lib/python3.7/dist-packages/matplotlib/mpl-data/fonts/ttf/taipei_sans_tc_beta.ttf')\n","myfont.set_size(15)"],"execution_count":null,"outputs":[{"output_type":"stream","name":"stdout","text":["--2021-09-22 12:29:09-- https://drive.google.com/uc?id=1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_\n","Resolving drive.google.com (drive.google.com)... 173.194.214.102, 173.194.214.100, 173.194.214.113, ...\n","Connecting to drive.google.com (drive.google.com)|173.194.214.102|:443... connected.\n","HTTP request sent, awaiting response... 302 Moved Temporarily\n","Location: https://doc-0k-9o-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/4bsqcegqmgk3jpf1qrnnimlkcckihj80/1632313725000/02847987870453524430/*/1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_ [following]\n","Warning: wildcards not supported in HTTP.\n","--2021-09-22 12:29:14-- https://doc-0k-9o-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/4bsqcegqmgk3jpf1qrnnimlkcckihj80/1632313725000/02847987870453524430/*/1eGAsTN1HBpJAkeVM57_C7ccp7hbgSz3_\n","Resolving doc-0k-9o-docs.googleusercontent.com (doc-0k-9o-docs.googleusercontent.com)... 173.194.213.132, 2607:f8b0:400c:c0a::84\n","Connecting to doc-0k-9o-docs.googleusercontent.com (doc-0k-9o-docs.googleusercontent.com)|173.194.213.132|:443... connected.\n","HTTP request sent, awaiting response... 200 OK\n","Length: unspecified [application/x-font-ttf]\n","Saving to: ‘taipei_sans_tc_beta.ttf’\n","\n","taipei_sans_tc_beta [ <=> ] 19.70M 44.3MB/s in 0.4s \n","\n","2021-09-22 12:29:15 (44.3 MB/s) - ‘taipei_sans_tc_beta.ttf’ saved [20659344]\n","\n"]}]},{"cell_type":"markdown","metadata":{"id":"OYnV_uFBL9HW"},"source":["## 縣市選擇"]},{"cell_type":"markdown","metadata":{"id":"LOEit3XATotd"},"source":["## 選一個縣市研究"]},{"cell_type":"code","metadata":{"id":"Mbd399rsabic"},"source":["location = \"\\u53F0\\u5317\\u5E02\" #@param ['台北市','苗栗縣','花蓮縣','台中市','台中縣','台東縣','基隆市','南投縣','澎湖縣','台南市','彰化縣','高雄市','雲林縣','金門縣','台北縣','嘉義縣','連江縣','宜蘭縣','台南縣','嘉義市','桃園縣','高雄縣','新竹市','新竹縣','屏東縣']"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"O3Erhg4gTo7K"},"source":["location_str = \"\"\"台北市 A 苗栗縣 K 花蓮縣 U\n","台中市 B 台中縣 L 台東縣 V\n","基隆市 C 南投縣 M 澎湖縣 X\n","台南市 D 彰化縣 N \n","高雄市 E 雲林縣 P 金門縣 W\n","台北縣 F 嘉義縣 Q 連江縣 Z\n","宜蘭縣 G 台南縣 R 嘉義市 I\n","桃園縣 H 高雄縣 S 新竹市 O\n","新竹縣 J 屏東縣 T\"\"\"\n","\n","locToLetter = dict(zip(location_str.split()[::2], location_str.lower().split()[1::2]))"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":947},"id":"rtBsCLG0KE2z","executionInfo":{"status":"ok","timestamp":1632313765531,"user_tz":-480,"elapsed":4714,"user":{"displayName":"林得勝","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10265360023258000577"}},"outputId":"babb2068-82b6-431a-a502-92fb4b3d7ac1"},"source":["import os\n","import pandas as pd\n","\n","# 歷年資料夾\n","dirs = [d for d in os.listdir() if d[:4] == 'real']\n","\n","dfs = []\n","\n","for d in dirs:\n"," df = pd.read_csv(os.path.join(d,locToLetter[location] + '_lvr_land_a.csv'), index_col=False)\n"," df['Q'] = d[-1]\n"," dfs.append(df.iloc[1:])\n"," \n","df = pd.concat(dfs, sort=True)\n","\n","# 新增交易年份\n","df['year'] = pd.to_numeric(df['交易年月日'].str[:-4], errors='coerce') + 1911\n","\n","# 平方公尺換成坪\n","df['單價元平方公尺'] = df['單價元平方公尺'].astype(float)\n","df['單價元坪'] = df['單價元平方公尺'] * 3.30579\n","\n","# 建物型態\n","df['建物型態2'] = df['建物型態'].str.split('(').str[0]\n","\n","# 刪除有備註之交易(多為親友交易、價格不正常之交易)\n","df = df[df['備註'].isnull()]\n","\n","# 將index改成年月日\n","df.index = pd.to_datetime(df['year'].astype(str) + df['交易年月日'].str[-4:] ,errors='coerce')\n","df.sort_index(inplace=True)\n","df.head(2)"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/html":["
\n","\n","
\n"," \n","
\n","
\n","
Q
\n","
主建物面積
\n","
主要建材
\n","
主要用途
\n","
交易年月日
\n","
交易標的
\n","
交易筆棟數
\n","
備註
\n","
單價元平方公尺
\n","
土地位置建物門牌
\n","
土地移轉總面積平方公尺
\n","
建物型態
\n","
建物現況格局-廳
\n","
建物現況格局-房
\n","
建物現況格局-衛
\n","
建物現況格局-隔間
\n","
建物移轉總面積平方公尺
\n","
建築完成年月
\n","
有無管理組織
\n","
移轉層次
\n","
移轉編號
\n","
編號
\n","
總價元
\n","
總樓層數
\n","
車位移轉總面積(平方公尺)
\n","
車位總價元
\n","
車位類別
\n","
都市土地使用分區
\n","
鄉鎮市區
\n","
附屬建物面積
\n","
陽台面積
\n","
電梯
\n","
非都市土地使用分區
\n","
非都市土地使用編定
\n","
year
\n","
單價元坪
\n","
建物型態2
\n","
\n"," \n"," \n","
\n","
1911-12-30
\n","
2
\n","
0.0
\n","
見其他登記事項
\n","
停車空間
\n","
01230
\n","
車位
\n","
土地0建物0車位1
\n","
NaN
\n","
NaN
\n","
臺北市南港區忠孝東路六段21號地下三層
\n","
2.72
\n","
其他
\n","
0
\n","
0
\n","
0
\n","
有
\n","
42.7
\n","
0931216
\n","
有
\n","
地下三層
\n","
NaN
\n","
RPVNMLKMLHMFFDA87CA
\n","
1750000
\n","
十七層
\n","
0.0
\n","
1750000
\n","
坡道平面
\n","
商
\n","
南港區
\n","
0.0
\n","
0.0
\n","
NaN
\n","
NaN
\n","
NaN
\n","
1911
\n","
NaN
\n","
其他
\n","
\n","
\n","
2003-04-15
\n","
4
\n","
0.0
\n","
鋼骨鋼筋混凝土造
\n","
見其他登記事項
\n","
920415
\n","
車位
\n","
土地0建物0車位1
\n","
NaN
\n","
NaN
\n","
臺北市大安區光復南路290巷28號地下一層
\n","
0.14
\n","
其他
\n","
0
\n","
0
\n","
0
\n","
有
\n","
19.65
\n","
1010613
\n","
無
\n","
地下一層
\n","
NaN
\n","
RPROMLRLQHIFFFA48CA
\n","
1500000
\n","
十四層
\n","
19.65
\n","
1500000
\n","
坡道平面
\n","
住
\n","
大安區
\n","
0.0
\n","
0.0
\n","
NaN
\n","
NaN
\n","
NaN
\n","
2003
\n","
NaN
\n","
其他
\n","
\n"," \n","
\n","
"],"text/plain":[" Q 主建物面積 主要建材 主要用途 ... 非都市土地使用編定 year 單價元坪 建物型態2\n","1911-12-30 2 0.0 見其他登記事項 停車空間 ... NaN 1911 NaN 其他\n","2003-04-15 4 0.0 鋼骨鋼筋混凝土造 見其他登記事項 ... NaN 2003 NaN 其他\n","\n","[2 rows x 37 columns]"]},"metadata":{},"execution_count":7}]},{"cell_type":"markdown","metadata":{"id":"hmleUSXNTPIx"},"source":["## 價格與漲跌的相關性"]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":425},"id":"s2eRvPxPcoxG","executionInfo":{"status":"ok","timestamp":1632297967789,"user_tz":-480,"elapsed":781,"user":{"displayName":"林得勝","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10265360023258000577"}},"outputId":"c210bcfc-2d55-4b24-a394-cbff482c4e14"},"source":["plt.rcParams['figure.figsize'] = (10, 6)\n","\n","prices = {}\n","for district in set(df['鄉鎮市區']):\n"," cond = (\n"," (df['主要用途'] == '住家用')\n"," & (df['鄉鎮市區'] == district)\n"," & (df['單價元坪'] < df[\"單價元坪\"].quantile(0.95))\n"," & (df['單價元坪'] > df[\"單價元坪\"].quantile(0.05))\n"," )\n"," groups = df[cond]['year']\n"," prices[district] = df[cond]['單價元坪'].astype(float).groupby(groups).mean().loc[2012:]\n"," \n","price_history = pd.DataFrame(prices)\n","price_history.plot()\n","plt.title('各區平均單價',fontproperties=myfont)\n","plt.legend(prop=myfont)\n","plt.show()"],"execution_count":null,"outputs":[{"output_type":"display_data","data":{"image/png":"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\n","text/plain":["
"]},"metadata":{"needs_background":"light"}}]},{"cell_type":"code","metadata":{"colab":{"base_uri":"https://localhost:8080/","height":562},"id":"YisassLmc1qi","executionInfo":{"status":"ok","timestamp":1632297972721,"user_tz":-480,"elapsed":4694,"user":{"displayName":"林得勝","photoUrl":"https://lh3.googleusercontent.com/a/default-user=s64","userId":"10265360023258000577"}},"outputId":"f8fe850e-5196-44e0-b09d-61aff6a95701"},"source":["district_price = df.reset_index()[['鄉鎮市區', '單價元坪']].dropna()\n","district_price = district_price[district_price['單價元坪'] < 2000000]\n","\n","import plotly.express as px\n","fig = px.histogram(district_price, x=\"單價元坪\", color=\"鄉鎮市區\", marginal=\"rug\", nbins=50) # can be `box`, `violin`)\n","\n","# Overlay both histograms\n","fig.update_layout(barmode='overlay')\n","# Reduce opacity to see both histograms\n","fig.update_traces(opacity=0.75)\n","fig.show()"],"execution_count":null,"outputs":[{"output_type":"display_data","data":{"text/html":["\n","\n","\n","