gridview ashx实现数据更新_Python分析了香港26281套在售二手房数据,结果发现
作者:J哥
背景
香港的貧富差距問題一直十分尖銳,最突出的體現(xiàn)就是收入和樓價的巨大差異。早在60年代末香港房價就經(jīng)歷了暴漲,人們早已對不動產(chǎn)的金融屬性了如指掌,全港的投資情緒一直都相當(dāng)火熱。
即便香港當(dāng)前失業(yè)率高企,經(jīng)濟環(huán)境較差,但購買力仍在,樓市依然堅挺。
為了更加深入了解香港房地產(chǎn)市場,本文用Pyhton采集了香港在售26281套二手房數(shù)據(jù)并做可視化分析,試圖從數(shù)據(jù)層面理解香港樓市現(xiàn)狀。
具體代碼詳解見本文后半段,數(shù)據(jù)分析代碼和數(shù)據(jù)集可在公眾號【凹凸數(shù)據(jù)】后臺回復(fù)「香港」即可獲取。
九龍房源最多,港島價格更高
香港特別行政區(qū),下轄香港島、九龍半島、新界3個地區(qū)共18個分區(qū)。九龍半島在售二手房源共8108個,占比28.62%。根據(jù)中原城市指數(shù)CCI(僅包括大型屋苑),港島報187.66點,高于香港其他地區(qū)。
具體分區(qū)來看,香港在售二手房源集中分布在葵青區(qū)、元朗區(qū)、屯門區(qū)等地,而九龍城區(qū)、深水埗區(qū)、中西區(qū)、灣仔區(qū)、東區(qū)等地房價較高。香港在售二手房實用呎價均價為呎(折合人民幣約元平方米),最低實用呎價4421/呎,最高實用呎價$96965/呎。
將軍澳二手房源最多
將軍澳、元朗和屯門在售二手房均超1000套,其中,將軍澳以2112套二手房源居首。
九龍站二手房均價最高
九龍站、山頂/南區(qū)、貝沙灣和中半山在售二手房均價超過萬呎,九龍站以37232/呎遙遙領(lǐng)先,遠(yuǎn)高于香港二手房整體均價。
小戶型為主,2房占比超一半
從建筑面積來看,香港在售二手房普遍建面在500呎-1200呎(46-111平方米),占比高達78.52%,共計18825套。
從居室來看,香港在售二手房中,2房共計12231套,占比51.05%;3房共計7613套,占比31.76%;4房以上71套,占比僅為0.29%。
各樓齡段均有一定比例分布
從香港在售二手房樓齡來看,25-39年樓齡的二手房源最多,共7396套,占比31.31%;15-24年5939套,占比25.36%;40年以上房源也有2347套,占比10.93%。
50%以上二手房低于1000萬
從香港在售二手房售價來看,1000萬(約429-858萬人民幣)房源數(shù)量為12301套,占比51.31%。
描述性統(tǒng)計
相關(guān)性分析
從相關(guān)系數(shù)表和回歸圖來看,間隔(即居室)和樓齡都與香港二手房房價無明顯的相關(guān)性。實用面積與房價具有較強的正相關(guān)性,一般來說,人們在看房子時看到的面積是建筑面積,但卻不是實用面積。套內(nèi)建筑面積=套內(nèi)使用面積+套內(nèi)墻體面積+陽臺面積,而實用面積就是套內(nèi)使用面積。另外,實用率與房價也無相關(guān)性,這與大部分人的感性認(rèn)識存在偏差。
技術(shù)實現(xiàn)
本文數(shù)據(jù)來源于中原地產(chǎn),網(wǎng)頁結(jié)構(gòu)相對簡單。數(shù)據(jù)清洗主要用到Python的pandas庫,由于內(nèi)容較多,僅提供核心字段清洗代碼。數(shù)據(jù)可視化主要用到Python的pyecharts庫,都是一些基礎(chǔ)圖表,本公眾號往期原創(chuàng)文章也已多次提及。
數(shù)據(jù)獲取
爬蟲核心代碼
#將繁體轉(zhuǎn)換成簡體def?tradition2simple(line):
????return?Converter('zh-hans').convert(line)
#解析網(wǎng)頁
def?get_page(page):
????????if?page?<11:
????????????url?=?'http://hk.centanet.com/findproperty/BLL/Result_SearchHandler.ashx?url=http%3A%2F%2Fhk.centanet.com%2Ffindproperty%2Fzh-HK%2FHome%2FSearchResult%3Fposttype%3DS%26src%3DC%26minprice%3D%26maxprice%3D%26sortcolumn%3D%26sorttype%3D%26limit%3D100%26currentpage%3D{0}'.format(page)
????????else:
????????????url?=?'http://hk.centanet.com/findproperty/BLL/Result_SearchHandler.ashx?url=http%3A%2F%2Fhk.centanet.com%2Ffindproperty%2Fzh-HK%2FHome%2FSearchResult%3Fposttype%3DS%26src%3DC%26minprice%3D%26maxprice%3D%26sortcolumn%3D%26sorttype%3D%26limit%3D-1%26currentpage%3D{0}'.format(page)
????????req?=?requests.get(url,?headers?=?headers)
????????bs?=?req.json()
????????#?print(bs)
????????ts?=?tradition2simple(bs['post'])
????????#?print(ts)
????????html?=?etree.HTML(ts)
if?__name__?==?'__main__':
????ua?=?UserAgent(verify_ssl=False)
????headers?=?{"User-Agent":?ua.random}
????for?page?in?range(1,2624):??#共2623頁
????????get_page(page)
????????#?time.sleep(1)
????????print("第%d頁爬取完成"%page)
????????print('-'*100)
數(shù)據(jù)預(yù)覽
數(shù)據(jù)清洗
建筑面積/單價
#異常字符替換為空df["建筑面積"]?=?df["建筑面積"].str.replace(",","").astype("float")
df["建面單價"]?=?df["建面單價"].str.replace("$","").str.replace(",","").str.replace("/呎","").astype("float")
#建筑面積和建面單價缺失值用均值填充
df?=?df.fillna(value={'建筑面積':df["建筑面積"].mean(),'建面單價':df["建面單價"].mean()})
間隔
#?存在缺失值、換行符、非數(shù)字型、無房間數(shù)等臟數(shù)據(jù)df["間隔"]?=?df["間隔"].str.replace("\r\n","").str[:1]
df?=?df[?~?df['間隔'].isin(['('])]??#刪除某列包含特殊字符的行
df["間隔"]?=?df["間隔"].str.replace("開","0").astype("float")
df?=?df.fillna(value={'間隔':df["間隔"].mean()})
df["間隔"]?=?df["間隔"].astype("int")
售價
#售價單位存在萬和億,進行統(tǒng)一化處理df["售價"]?=?(df["售價"].str.replace("$","").str.replace(",","").str[:-1].astype(float)?*?df['售價'].str[-1].map({"萬":?1,?"億":?10000})).astype("int")
數(shù)據(jù)可視化
回歸圖
fig,axes=plt.subplots(5,1,figsize=(12,30))?sns.regplot(x='間隔',y='實用單價',data=df1,color='green',marker='*',ax=axes[0])
sns.regplot(x='樓齡',y='實用單價',data=df1,color='green',marker='*',ax=axes[1])
sns.regplot(x='實用面積',y='實用單價',data=df1,color='green',marker='*',ax=axes[2])
sns.regplot(x='建筑面積',y='實用單價',data=df1,color='green',marker='*',ax=axes[3])
sns.regplot(x='實用率',y='實用單價',data=df1,color='green',marker='*',ax=axes[4])
條形圖
df5?=?df1.groupby('屋苑位置')['實用單價'].count()df5?=?df5.sort_values(ascending=True)
df5?=?df5.tail(10)
print(df5.index.to_list())
print(df5.to_list())
c?=?(
????Bar(init_opts=opts.InitOpts(theme=ThemeType.WONDERLAND))
????.add_xaxis(df5.index.to_list())
????.add_yaxis("",df5.to_list()).reversal_axis()?#X軸與y軸調(diào)換順序
????.set_global_opts(title_opts=opts.TitleOpts(title="香港二手房數(shù)量TOP10",subtitle="數(shù)據(jù)來源:中原地產(chǎn)?\t制圖:J哥",pos_left?=?'left'),
???????????????????????xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)),?#更改橫坐標(biāo)字體大小
???????????????????????yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)),?#更改縱坐標(biāo)字體大小
???????????????????????)
????.set_series_opts(label_opts=opts.LabelOpts(font_size=16,position='right'))
????)
c.render_notebook()
餅圖
df2?=?df1.groupby('間隔')['實用單價'].count()print(df2)
df2?=?df2.sort_values(ascending=False)?
regions?=?df2.index.to_list()
values?=?df2.to_list()
c?=?(
????????Pie(init_opts=opts.InitOpts(theme=ThemeType.WONDERLAND))
????????.add("",?list(zip(regions,values)))
????????.set_global_opts(title_opts=opts.TitleOpts(title="香港二手房間隔分布",subtitle="數(shù)據(jù)來源:中原地產(chǎn)\n制圖:J哥",pos_top="1%",pos_left?=?'left'))
????????.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:ze8trgl8bvbq%",font_size=16))
????)
c.render_notebook()
凹凸福利
推薦語?:《Python數(shù)據(jù)可視化:基于Bokeh的可視化繪圖》這是一本適合零基礎(chǔ)讀者快速入門并掌握Bokeh的實戰(zhàn)指南,作者是Bokeh的先驅(qū)用戶和布道者,實踐經(jīng)驗豐富。本書從圖形繪制、數(shù)據(jù)動態(tài)展示、Web交互等維度全面講解Bokeh功能和使用,不涉及復(fù)雜的數(shù)據(jù)處理和算法,包含大量實戰(zhàn)案例。點擊下圖可看詳情/購買!?
感謝機械工業(yè)出版社華章公司的支持!「凹凸數(shù)據(jù)」300積分兌換?!當(dāng)當(dāng)限時購書優(yōu)惠碼:?HSMQ9J,自營100-20;FWJY6Q,自營49-20(限新客,換個手機號即可)以上優(yōu)惠券均可疊加滿100-50活動總結(jié)
以上是生活随笔為你收集整理的gridview ashx实现数据更新_Python分析了香港26281套在售二手房数据,结果发现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 春节送礼送什么Apple 全家桶选一个
- 下一篇: 奇奇seo优化软件_西藏seo关键词优化