溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用Python分析上海的二手房?jī)r(jià)

發(fā)布時(shí)間:2021-11-25 14:47:07 來(lái)源:億速云 閱讀:149 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“怎么用Python分析上海的二手房?jī)r(jià)”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么用Python分析上海的二手房?jī)r(jià)”吧!

儀表板展示

怎么用Python分析上海的二手房?jī)r(jià)

項(xiàng)目背景

去面試的時(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),緩解了開(kāi)發(fā)商的資金壓力,新房銷(xiāo)售價(jià)格降低,導(dǎo)致新房市場(chǎng)火熱而二手房市場(chǎng)冷清。
2、調(diào)整公積金貸款利率,提高了二房的房貸利率,打擊市場(chǎng)投機(jī)需求。
3、鼓勵(lì)租售并舉,鼓勵(lì)以住房租賃為主營(yíng)業(yè)務(wù)的企業(yè)買(mǎi)房。
4、居住證降低申請(qǐng)門(mén)檻新政,讓落戶買(mǎi)房更加容易。
5、農(nóng)民購(gòu)房有補(bǔ)助,幫助農(nóng)民工朋友們省去一部分買(mǎi)房成本。

從經(jīng)濟(jì)上來(lái)看,2020 年上半年上海人均可支配收入以 36577 元笑傲全國(guó),同比增長(zhǎng)3.64%??此泼利惖臄?shù)值背后,隱藏著多少被平均的普通老百姓。

怎么用Python分析上海的二手房?jī)r(jià)

在對(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ù)類(lèi)型
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ù)類(lèi)型
data['價(jià)格'] = data['價(jià)格'].astype(float)

# 轉(zhuǎn)換日期類(lèi)型
data['掛牌時(shí)間'] = pd.to_datetime(data['掛牌時(shí)間'])

# 如果存在非時(shí)間類(lèi)型的字符串則替換為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)

怎么用Python分析上海的二手房?jī)r(jià)

從上面的散點(diǎn)圖我們可以看出右邊有一個(gè)異常點(diǎn),建筑面積4702平米,總價(jià)68萬(wàn),我返回鏈家網(wǎng)查詢?cè)撎追吭窗l(fā)現(xiàn)在網(wǎng)站上他就是這么標(biāo)價(jià)的。而同小區(qū)的價(jià)格如下所示。

怎么用Python分析上海的二手房?jī)r(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 元/平米

均價(jià)超過(guò) 30 萬(wàn)元/平米的房源到底在哪里?

怎么用Python分析上海的二手房?jī)r(jià)

沒(méi)錯(cuò),就是武康大樓,最早稱(chēng)為“諾曼底公寓”,而我們更喜歡叫它“九層樓”,這已經(jīng)是清除了電線后的模樣,其實(shí)我小時(shí)候的印象是這樣的。

電線編織如蜘蛛網(wǎng),這才是老底子的上海味道。

“九層樓”所處位置是個(gè)六岔路口,大家若要打卡請(qǐng)注意安全不要停留在路中間。旁邊的武康路也是一條很有歷史底蘊(yùn)的“名人路”。

熱門(mé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="熱門(mén)商圈掛牌數(shù)", subtitle="崇明區(qū)缺少相應(yīng)房源數(shù)據(jù);數(shù)據(jù)截至2020年7月\n數(shù)據(jù)來(lái)源:鏈家網(wǎng) "), toolbox_opts=opts.ToolboxOpts()).render_notebook()

怎么用Python分析上海的二手房?jī)r(jià)

怎么用Python分析上海的二手房?jī)r(jià)

戶型

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}套\njrzjdxb%")).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()

上海二手房掛牌的戶型千奇百怪,但還是以兩室戶居多,一室戶偏少。

二手房?jī)r(jià)位

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}套\nprr3vnr%")).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()

怎么用Python分析上海的二手房?jī)r(jià)

100 萬(wàn)以內(nèi)想在上海買(mǎi)套房基本是不可能的了??梢酝Q崗考慮一下。同志們努把力,100-300 萬(wàn)有 13000 多套房源等著你!

房屋所屬環(huán)線

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}套\nxbfvbxf%")).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ù)向下看。

上海均價(jià)地圖

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()

怎么用Python分析上海的二手房?jī)r(jià)

看看中間那紅彤彤的區(qū)域,市中心的價(jià)格遠(yuǎn)遠(yuǎn)高于市區(qū)外。

掛牌量

怎么用Python分析上海的二手房?jī)r(jià)

今年一二月受疫情影響,上海二手房掛牌量較低,隨著疫情情況緩和,從三月起上海二手房掛牌量逐漸增加。2020年上半年6月份的掛牌量是最大的。

怎么用Python分析上海的二手房?jī)r(jià)

雖然上海房?jī)r(jià)呈現(xiàn)著下跌趨勢(shì),但我還是買(mǎi)不起。

怎么用Python分析上海的二手房?jī)r(jià)

怎么用Python分析上海的二手房?jī)r(jià)

用折線圖來(lái)看看趨勢(shì),好像各區(qū)都挺平緩的,浦東新區(qū)倒是在四月份之后有所上漲,虹口區(qū)在七月也有一小波上漲。

到此,相信大家對(duì)“怎么用Python分析上海的二手房?jī)r(jià)”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI