日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

gridview ashx实现数据更新_Python分析了香港26281套在售二手房数据,结果发现

發布時間:2023/12/2 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gridview ashx实现数据更新_Python分析了香港26281套在售二手房数据,结果发现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:J哥

背景

香港的貧富差距問題一直十分尖銳,最突出的體現就是收入和樓價的巨大差異。早在60年代末香港房價就經歷了暴漲,人們早已對不動產的金融屬性了如指掌,全港的投資情緒一直都相當火熱。

即便香港當前失業率高企,經濟環境較差,但購買力仍在,樓市依然堅挺。

為了更加深入了解香港房地產市場,本文用Pyhton采集了香港在售26281套二手房數據并做可視化分析,試圖從數據層面理解香港樓市現狀。

具體代碼詳解見本文后半段,數據分析代碼和數據集可在公眾號【凹凸數據】后臺回復「香港」即可獲取。

九龍房源最多,港島價格更高

香港特別行政區,下轄香港島、九龍半島、新界3個地區共18個分區。九龍半島在售二手房源共8108個,占比28.62%。根據中原城市指數CCI(僅包括大型屋苑),港島報187.66點,高于香港其他地區。

具體分區來看,香港在售二手房源集中分布在葵青區、元朗區、屯門區等地,而九龍城區、深水埗區、中西區、灣仔區、東區等地房價較高。香港在售二手房實用呎價均價為呎(折合人民幣約元平方米),最低實用呎價4421/呎,最高實用呎價$96965/呎。

將軍澳二手房源最多

將軍澳、元朗和屯門在售二手房均超1000套,其中,將軍澳以2112套二手房源居首。

九龍站二手房均價最高

九龍站、山頂/南區、貝沙灣和中半山在售二手房均價超過萬呎,九龍站以37232/呎遙遙領先,遠高于香港二手房整體均價。

小戶型為主,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萬人民幣)房源數量為12301套,占比51.31%。

描述性統計

相關性分析

從相關系數表和回歸圖來看,間隔(即居室)和樓齡都與香港二手房房價無明顯的相關性。實用面積與房價具有較強的正相關性,一般來說,人們在看房子時看到的面積是建筑面積,但卻不是實用面積。套內建筑面積=套內使用面積+套內墻體面積+陽臺面積,而實用面積就是套內使用面積。另外,實用率與房價也無相關性,這與大部分人的感性認識存在偏差。

技術實現

本文數據來源于中原地產,網頁結構相對簡單。數據清洗主要用到Python的pandas庫,由于內容較多,僅提供核心字段清洗代碼。數據可視化主要用到Python的pyecharts庫,都是一些基礎圖表,本公眾號往期原創文章也已多次提及。

數據獲取

爬蟲核心代碼

#將繁體轉換成簡體
def?tradition2simple(line):
????return?Converter('zh-hans').convert(line)
#解析網頁
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)

數據預覽

數據清洗

建筑面積/單價

#異常字符替換為空
df["建筑面積"]?=?df["建筑面積"].str.replace(",","").astype("float")
df["建面單價"]?=?df["建面單價"].str.replace("$","").str.replace(",","").str.replace("/呎","").astype("float")
#建筑面積和建面單價缺失值用均值填充
df?=?df.fillna(value={'建筑面積':df["建筑面積"].mean(),'建面單價':df["建面單價"].mean()})

間隔

#?存在缺失值、換行符、非數字型、無房間數等臟數據
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")

售價

#售價單位存在萬和億,進行統一化處理
df["售價"]?=?(df["售價"].str.replace("$","").str.replace(",","").str[:-1].astype(float)?*?df['售價'].str[-1].map({"萬":?1,?"億":?10000})).astype("int")

數據可視化

回歸圖

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軸調換順序
????.set_global_opts(title_opts=opts.TitleOpts(title="香港二手房數量TOP10",subtitle="數據來源:中原地產?\t制圖:J哥",pos_left?=?'left'),
???????????????????????xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)),?#更改橫坐標字體大小
???????????????????????yaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(font_size=13)),?#更改縱坐標字體大小
???????????????????????)
????.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="數據來源:中原地產\n制圖:J哥",pos_top="1%",pos_left?=?'left'))
????????.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:ozvdkddzhkzd%",font_size=16))
????)
c.render_notebook()

凹凸福利

推薦語?:《Python數據可視化:基于Bokeh的可視化繪圖》這是一本適合零基礎讀者快速入門并掌握Bokeh的實戰指南,作者是Bokeh的先驅用戶和布道者,實踐經驗豐富。本書從圖形繪制、數據動態展示、Web交互等維度全面講解Bokeh功能和使用,不涉及復雜的數據處理和算法,包含大量實戰案例。點擊下圖可看詳情/購買!?

感謝機械工業出版社華章公司的支持!「凹凸數據」300積分兌換?!當當限時購書優惠碼:?HSMQ9J,自營100-20FWJY6Q,自營49-20(限新客,換個手機號即可)以上優惠券均可疊加滿100-50活動

總結

以上是生活随笔為你收集整理的gridview ashx实现数据更新_Python分析了香港26281套在售二手房数据,结果发现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。