數(shù)據(jù)分析實(shí)戰(zhàn),用Python熱力圖分析房地產(chǎn)市場(chǎng)
不良房地產(chǎn)物業(yè)是指瀕臨取消抵押品贖回權(quán)的房屋或已經(jīng)被銀行擁有的房屋。投資者經(jīng)常尋找這些房產(chǎn),因?yàn)橛袡C(jī)會(huì)以折扣價(jià)購(gòu)買(mǎi)房屋。
然而,尋找這些房產(chǎn)并評(píng)估它們的潛力可能是一項(xiàng)具有挑戰(zhàn)性的任務(wù),尤其是在房地產(chǎn)市場(chǎng)復(fù)雜的大城市。
地理熱力圖可以成為發(fā)現(xiàn)不良房地產(chǎn)折扣的有力工具。熱力圖使用顏色編碼來(lái)表示地圖上的價(jià)值,使之可以輕松識(shí)別趨勢(shì)和模式。在本文中,將展示如何在Python中使用房地產(chǎn)數(shù)據(jù)創(chuàng)建地理熱力圖,為客戶(hù)識(shí)別不良房地產(chǎn)的折扣。
創(chuàng)建地理熱力圖
為了創(chuàng)建地理熱力圖,我們使用Python中的folium庫(kù)。Folium是一個(gè)Python庫(kù),它可以輕松創(chuàng)建帶有顏色編碼標(biāo)記和疊加層的交互式地圖。
在這個(gè)任務(wù)中需要的數(shù)據(jù)是:
- 房產(chǎn)的緯度和經(jīng)度
- 房產(chǎn)的折扣,可以通過(guò)使用最低銷(xiāo)售價(jià)格除以估計(jì)的市場(chǎng)價(jià)值來(lái)計(jì)算
數(shù)據(jù)準(zhǔn)備
1.導(dǎo)入數(shù)據(jù),并檢查需要的列
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
data_mw = pd.DataFrame(pd.read_csv('Vendue_Tech/data/data_collection_mw_ml.csv', low_memory=False))
df_loc = data_mw[['location','discount_calculated']]
df_loc
######################################################################
Out[16]:
location discount_calculated
41 45.816608, 15.941879 0.000000
71 44.558022, 14.886877 0.800000
182 45.828371, 16.067598 0.800000
200 45.650070, 16.537105 0.800000
201 45.650070, 16.537105 0.800000
... ...
23570 41.417765, 2.207708 1.067182
23917 38.373215, -0.488444 0.250780
24087 39.948468, -0.095799 0.470790
24431 41.656043, -0.889369 0.636979
24537 38.090955, -0.727618 0.732907
2.分離緯度和經(jīng)度
在導(dǎo)入的原始數(shù)據(jù)庫(kù)中,我們得到了一個(gè)包含緯度和經(jīng)度的列,因此需要先將這兩種數(shù)據(jù)分開(kāi):
df_loc[['latitude', 'longitude']] = df_loc['location'].str.split(',', expand=True)
# 將緯度和經(jīng)度列轉(zhuǎn)換為浮點(diǎn)數(shù)類(lèi)型
df_loc[['latitude', 'longitude']] = df_loc[['latitude', 'longitude']].astype(float)
df_loc
######################################################################
Out[22]:
location discount_calculated latitude longitude
41 45.816608, 15.941879 0.000000 45.816608 15.941879
71 44.558022, 14.886877 0.800000 44.558022 14.886877
182 45.828371, 16.067598 0.800000 45.828371 16.067598
200 45.650070, 16.537105 0.800000 45.650070 16.537105
201 45.650070, 16.537105 0.800000 45.650070 16.537105
... ... ... ...
23570 41.417765, 2.207708 1.067182 41.417765 2.207708
23917 38.373215, -0.488444 0.250780 38.373215 -0.488444
24087 39.948468, -0.095799 0.470790 39.948468 -0.095799
24431 41.656043, -0.889369 0.636979 41.656043 -0.889369
24537 38.090955, -0.727618 0.732907 38.090955 -0.727618
3.繪制地理熱力圖
- 安裝Folium
可以使用以下pip命令來(lái)安裝Python folium模塊:
pip install folium
- 創(chuàng)建一個(gè)包含所有屬性的緯度、經(jīng)度和權(quán)重(折扣值)的列表,并顯示列表中的前五個(gè)值。
lats_longs_weight = list(map(list, zip(df_loc["latitude"],df_loc["longitude"],
df_loc["discount_calculated"]
)))
lats_longs_weight[:5]
#####################################################################
Out[24]:
[[45.816608, 15.941879, 0.0],
[44.558022, 14.886877, 0.7999999598695077],
[45.828371, 16.067598, 0.7999999580250712],
[45.65007, 16.537105, 0.8000000798932306],
[45.65007, 16.537105, 0.8000000798932306]]
- 創(chuàng)建地理熱力圖:
# 導(dǎo)入庫(kù)
import folium
from folium.plugins import HeatMap
# 我們通過(guò)傳遞一個(gè)整數(shù)值給`zoom_start`屬性來(lái)設(shè)置縮放級(jí)別
# 我們選擇`location = [40.151384,-4.108039]`,這樣就可以圍繞我們最常去的地方進(jìn)行放大。
map_obj = folium.Map(location = [40.151384,-4.108039], zoom_start = 4)
# 創(chuàng)建我們的地理熱力圖
HeatMap(lats_longs_weight).add_to(map_obj)
# 保存熱力圖
map_obj.save('map.html')
- 現(xiàn)在可以選擇我們的map.html文件,并直接在瀏覽器中打開(kāi)它:
結(jié)果和結(jié)論
從上述圖片可以看到,在克羅地亞,投資者在首都Zagreb附近有最大的機(jī)會(huì),而在西班牙,最大的折扣可以在Barcelona和Alicante附近找到。在未來(lái)的工作中,探索這些按房地產(chǎn)類(lèi)型劃分的數(shù)據(jù)將是有趣的,這樣投資者就可以看到在哪些地方的公寓折扣最大,以及如果投資者想投資耕地應(yīng)該在哪里尋找。
地理熱力圖工具使我們能夠直觀地看到歐盟各地不良房地產(chǎn)的折扣情況。通過(guò)分析房地產(chǎn)數(shù)據(jù)并將其在地圖上可視化,投資者能夠確定折扣最高的地區(qū),并優(yōu)先在這些地區(qū)尋找不良房地產(chǎn)。這項(xiàng)技術(shù)幫助投資者發(fā)現(xiàn)了可能會(huì)錯(cuò)過(guò)的潛在投資機(jī)會(huì)。