本篇內(nèi)容主要講解“怎么用Python分析上海的二手房?jī)r(jià)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么用Python分析上海的二手房?jī)r(jià)”吧!
創(chuàng)新互聯(lián)公司,為您提供成都網(wǎng)站建設(shè)、重慶網(wǎng)站制作、網(wǎng)站營(yíng)銷推廣、網(wǎng)站開發(fā)設(shè)計(jì),對(duì)服務(wù)成都花箱等多個(gè)行業(yè)擁有豐富的網(wǎng)站建設(shè)及推廣經(jīng)驗(yàn)。創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司成立于2013年,提供專業(yè)網(wǎng)站制作報(bào)價(jià)服務(wù),我們深知市場(chǎng)的競(jìng)爭(zhēng)激烈,認(rèn)真對(duì)待每位客戶,為客戶提供賞心悅目的作品。 與客戶共同發(fā)展進(jìn)步,是我們永遠(yuǎn)的責(zé)任!
去面試的時(shí)候被問(wèn)上海二手房的一些情況,作為一個(gè)土著,我只知道上海這個(gè)區(qū)挺貴的那個(gè)區(qū)大概這個(gè)價(jià),但是具體數(shù)值卻說(shuō)不上來(lái)。所以,就有了本文。
從政策上來(lái)看,自從 2016 年國(guó)家喊出“房住不炒”的口號(hào)之后中國(guó)的房?jī)r(jià)就出現(xiàn)了明顯的降溫。2019 年國(guó)家為了“救市”又宣布了幾條政策:
1、政府不再壟斷住房供應(yīng),緩解了開發(fā)商的資金壓力,新房銷售價(jià)格降低,導(dǎo)致新房市場(chǎng)火熱而二手房市場(chǎng)冷清。
2、調(diào)整公積金貸款利率,提高了二房的房貸利率,打擊市場(chǎng)投機(jī)需求。
3、鼓勵(lì)租售并舉,鼓勵(lì)以住房租賃為主營(yíng)業(yè)務(wù)的企業(yè)買房。
4、居住證降低申請(qǐng)門檻新政,讓落戶買房更加容易。
5、農(nóng)民購(gòu)房有補(bǔ)助,幫助農(nóng)民工朋友們省去一部分買房成本。
從經(jīng)濟(jì)上來(lái)看,2020 年上半年上海人均可支配收入以 36577 元笑傲全國(guó),同比增長(zhǎng)3.64%??此泼利惖臄?shù)值背后,隱藏著多少被平均的普通老百姓。
在對(duì)數(shù)據(jù)進(jìn)行清洗前我們可以使用pandas_profiling進(jìn)行快速的統(tǒng)計(jì)分析。
import pandas_profiling pandas_profiling.ProfileReport(data).to_file("./report/html")
根據(jù)報(bào)告內(nèi)容我們可以看到本次數(shù)據(jù)總共有 37491 行,20 列,存在 7 行重復(fù),重復(fù)占比小于 0.1%,報(bào)告繼續(xù)下拉可以看到每一列的統(tǒng)計(jì)情況。
我們需要清洗的幾點(diǎn):
1、去除重復(fù)行
2、替換 None 值
3、將地區(qū)、房屋戶型、所在樓層、抵押信息進(jìn)行切分合并
4、轉(zhuǎn)換數(shù)據(jù)類型
5、刪除多余字符
6、由于爬取時(shí)出現(xiàn)的錯(cuò)誤,對(duì)價(jià)格列進(jìn)行重新賦值
7、剔除異常數(shù)據(jù)
# 如果有重復(fù)值,則保留第一個(gè) data.drop_duplicates(keep='first', inplace=True) # 替換None data = data.applymap(lambda x: '暫無(wú)數(shù)據(jù)' if x == 'None' else x) # 切分地區(qū)、房屋戶型、所在樓層、抵押信息后刪除原列,將拆分出的新列合并至原data data = pd.concat([data, data['地區(qū)'].str.extract(pat='(?P<區(qū)>.*?)\s(?P<鎮(zhèn)>.*?)\s(?P<環(huán)>.*)'), data['房屋戶型'].str.extract( pat='(?P<室>\d+)室(?P<廳>\d+)廳(?P<廚>\d+)廚(?P<衛(wèi)>\d+)衛(wèi)'), data['所在樓層'].str.extract( pat='(?P<所處樓層>.+)\(共(?P<總層數(shù)>\d+)層\)'), data['抵押信息'].map(lambda x:x.strip()).str.extract(pat='(?P<有無(wú)抵押>.{1})抵押(?P<抵押情況>.*)?')], axis=1) data.drop(['地區(qū)', '所在樓層', '抵押信息'], axis=1, inplace=True) data['區(qū)'] = data['區(qū)']+'區(qū)' # 去除建筑面積后面的平米單位,并轉(zhuǎn)為float data['建筑面積'] = data['建筑面積'].map(lambda x: float(x[:-1])) # 轉(zhuǎn)換數(shù)據(jù)類型 data['價(jià)格'] = data['價(jià)格'].astype(float) # 轉(zhuǎn)換日期類型 data['掛牌時(shí)間'] = pd.to_datetime(data['掛牌時(shí)間']) # 如果存在非時(shí)間類型的字符串則替換為NaT data['上次交易'] = pd.to_datetime(data['上次交易'], errors="coerce") # 存在括號(hào)幾期、某區(qū),都暫且刪除 data['小區(qū)'] = data['小區(qū)'].str.replace("[\(\(].*?[\)\)]", "") # 篩選出價(jià)格小于20的數(shù)據(jù),我們可以發(fā)現(xiàn)這些房源的面積及所屬區(qū)域都是比較好的,記錄的數(shù)據(jù)可能有所錯(cuò)誤 # 返回鏈家網(wǎng)站搜索這幾套房源后發(fā)現(xiàn),這些價(jià)格的單位都是"億",所以我們需要對(duì)所有數(shù)據(jù)再一次進(jìn)行清洗 # 統(tǒng)一使用'萬(wàn)'作為總價(jià)的單位 data['價(jià)格'] = data['價(jià)格'].map(lambda x: x*10000 if x < 20 else x) # 計(jì)算每平米單價(jià) data['均價(jià)'] = round(data['價(jià)格']/data['建筑面積']*10000, 2)
從上面的散點(diǎn)圖我們可以看出右邊有一個(gè)異常點(diǎn),建筑面積4702平米,總價(jià)68萬(wàn),我返回鏈家網(wǎng)查詢?cè)撎追吭窗l(fā)現(xiàn)在網(wǎng)站上他就是這么標(biāo)價(jià)的。而同小區(qū)的價(jià)格如下所示。
1、清洗好后總共剩下 37483 條數(shù)據(jù)
2、數(shù)據(jù)的統(tǒng)計(jì)周期是 2013-01-18 2020-07-24
3、上海目前出售的二手房面積從 13 平米 ~ 1663.1 平米不等
4、根據(jù)爬取數(shù)據(jù)來(lái)看上海最貴的二手房均價(jià)為 319960.62 元/平米,整體均價(jià)為 56466.26 元/平米
沒(méi)錯(cuò),就是武康大樓,最早稱為“諾曼底公寓”,而我們更喜歡叫它“九層樓”,這已經(jīng)是清除了電線后的模樣,其實(shí)我小時(shí)候的印象是這樣的。
電線編織如蜘蛛網(wǎng),這才是老底子的上海味道。
“九層樓”所處位置是個(gè)六岔路口,大家若要打卡請(qǐng)注意安全不要停留在路中間。旁邊的武康路也是一條很有歷史底蘊(yùn)的“名人路”。
hot_list = ['四川北路', '中山公園', '漕河涇', '徐家匯', '陸家嘴', '南京西路', '南京東路', '人民廣場(chǎng)', '淮海中路', '虹橋', '北外灘', '新天地', '靜安寺'] hot = data[data['鎮(zhèn)'].isin(hot_list)].groupby(by='鎮(zhèn)')['均價(jià)'].agg( ['mean', 'count']).sort_values(by='count', ascending=True) pyc.Bar().add_xaxis(hot.index.to_list()).add_yaxis(series_name="", yaxis_data=hot['count'].tolist(), label_opts=opts.LabelOpts(is_show=False)).reversal_axis( ).set_global_opts(title_opts=opts.TitleOpts(title="熱門商圈掛牌數(shù)", subtitle="崇明區(qū)缺少相應(yīng)房源數(shù)據(jù);數(shù)據(jù)截至2020年7月\n數(shù)據(jù)來(lái)源:鏈家網(wǎng) "), toolbox_opts=opts.ToolboxOpts()).render_notebook()
huxing = data['房屋戶型'].where(data['房屋戶型'].isin( ['2室1廳1廚1衛(wèi)', '1室1廳1廚1衛(wèi)', '2室2廳1廚1衛(wèi)', '3室2廳1廚2衛(wèi)', '3室1廳1廚1衛(wèi)', '2室1廳1廚2衛(wèi)']), other='其他', errors='ignore') pyc.Pie(init_opts=opts.InitOpts(height='600px', width='600px')).add(series_name='房屋戶型', data_pair=huxing.value_counts().items(), radius=(100, 150), rosetype="radius", label_opts=opts.LabelOpts( is_show=True, formatter="\n{c}套\nsqu6kqw%")).set_global_opts(title_opts=opts.TitleOpts(title="上海二手房掛牌房屋戶型", subtitle="崇明區(qū)缺少相應(yīng)房源數(shù)據(jù);數(shù)據(jù)截至2020年7月\n數(shù)據(jù)來(lái)源:鏈家網(wǎng) "), toolbox_opts=opts.ToolboxOpts()).render_notebook()
上海二手房掛牌的戶型千奇百怪,但還是以兩室戶居多,一室戶偏少。
data['房?jī)r(jià)分層'] = pd.cut(data['價(jià)格'], bins=[-np.inf, 100, 300, 500, 800, 1000, np.inf], right=True, labels=['100萬(wàn)以內(nèi)', '100-300萬(wàn)', '300-500萬(wàn)', '500-800萬(wàn)', '800-1000萬(wàn)', '1000萬(wàn)及以上']) pyc.Pie(init_opts=opts.InitOpts(height='500px', width='500px')).add(series_name="房?jī)r(jià)", data_pair=data['房?jī)r(jià)分層'].value_counts().items(), radius=(100, 150), rosetype=True, label_opts=opts.LabelOpts( formatter="\n{c}套\nsqu6kqw%")).set_global_opts(title_opts=opts.TitleOpts(title="上海房?jī)r(jià)分層", subtitle="崇明區(qū)缺少相應(yīng)房源數(shù)據(jù);數(shù)據(jù)截至2020年7月\n數(shù)據(jù)來(lái)源:鏈家網(wǎng) "), toolbox_opts=opts.ToolboxOpts()).render_notebook()
100 萬(wàn)以內(nèi)想在上海買套房基本是不可能的了??梢酝Q崗考慮一下。同志們努把力,100-300 萬(wàn)有 13000 多套房源等著你!
pyc.Pie(init_opts=opts.InitOpts(height='500px', width='500px')).add(series_name="環(huán)線", data_pair=data['環(huán)'].replace("", "暫無(wú)數(shù)據(jù)").value_counts().items(), radius=(100, 150), rosetype=True, label_opts=opts.LabelOpts( formatter="\n{c}套\nsqu6kqw%")).set_global_opts(title_opts=opts.TitleOpts(title="二手房所屬環(huán)線", subtitle="崇明區(qū)缺少相應(yīng)房源數(shù)據(jù);數(shù)據(jù)截至2020年7月\n數(shù)據(jù)來(lái)源:鏈家網(wǎng) "), toolbox_opts=opts.ToolboxOpts()).render_notebook()
外環(huán)外的房源明顯是最多的,很可能是外環(huán)外房?jī)r(jià)偏低,所以比較火熱吧,我們繼續(xù)向下看。
pyc.Map(init_opts=opts.InitOpts(height='500px', width='500px')).add(maptype="上海", series_name="均價(jià)", data_pair=[list(i) for i in data[data['掛牌時(shí)間'].dt.year == 2020].groupby(by=['區(qū)'])['均價(jià)'].mean().apply(round).items()], is_map_symbol_show=False, is_selected=True, label_opts=opts.LabelOpts( is_show=False)).set_global_opts(tooltip_opts=opts.TooltipOpts(formatter=":{c}元/平米"), visualmap_opts=opts.VisualMapOpts(max_=100000, pos_right='5%', pos_bottom='20%', is_calculable=True), title_opts=opts.TitleOpts(title="2020年上半年上海二手房均價(jià)圖", subtitle="崇明區(qū)缺少相應(yīng)房源數(shù)據(jù);數(shù)據(jù)截至2020年7月\n數(shù)據(jù)來(lái)源:鏈家網(wǎng) "), toolbox_opts=opts.ToolboxOpts(), legend_opts=opts.LegendOpts(is_show=False)).render_notebook()
看看中間那紅彤彤的區(qū)域,市中心的價(jià)格遠(yuǎn)遠(yuǎn)高于市區(qū)外。
今年一二月受疫情影響,上海二手房掛牌量較低,隨著疫情情況緩和,從三月起上海二手房掛牌量逐漸增加。2020年上半年6月份的掛牌量是最大的。
雖然上海房?jī)r(jià)呈現(xiàn)著下跌趨勢(shì),但我還是買不起。
用折線圖來(lái)看看趨勢(shì),好像各區(qū)都挺平緩的,浦東新區(qū)倒是在四月份之后有所上漲,虹口區(qū)在七月也有一小波上漲。
到此,相信大家對(duì)“怎么用Python分析上海的二手房?jī)r(jià)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!