然而,寻找这些房产并评估它们的潜力可能是一项具有挑战性的任务,尤其是在房地产市场复杂的大城市。
地理热力图可以成为发现不良房地产折扣的有力工具。热力图使用颜色编码来表示地图上的价值,使之可以轻松识别趋势和模式。在本文中,将展示如何在Python中使用房地产数据创建地理热力图,为客户识别不良房地产的折扣。
创建地理热力图
为了创建地理热力图,我们使用Python中的folium库。Folium是一个Python库,它可以轻松创建带有颜色编码标记和叠加层的交互式地图。
在这个任务中需要的数据是:
- 房产的纬度和经度
- 房产的折扣,可以通过使用最低销售价格除以估计的市场价值来计算
数据准备
1.导入数据,并检查需要的列
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.分离纬度和经度
在导入的原始数据库中,我们得到了一个包含纬度和经度的列,因此需要先将这两种数据分开:
df_loc[['latitude', 'longitude']] = df_loc['location'].str.split(',', expand=True)
# 将纬度和经度列转换为浮点数类型
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命令来安装Python folium模块:
pip install folium
- 创建一个包含所有属性的纬度、经度和权重(折扣值)的列表,并显示列表中的前五个值。
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]]
- 创建地理热力图:
# 导入库
import folium
from folium.plugins import HeatMap
# 我们通过传递一个整数值给`zoom_start`属性来设置缩放级别
# 我们选择`location = [40.151384,-4.108039]`,这样就可以围绕我们最常去的地方进行放大。
map_obj = folium.Map(location = [40.151384,-4.108039], zoom_start = 4)
# 创建我们的地理热力图
HeatMap(lats_longs_weight).add_to(map_obj)
# 保存热力图
map_obj.save('map.html')
- 现在可以选择我们的map.html文件,并直接在浏览器中打开它:
结果和结论
从上述图片可以看到,在克罗地亚,投资者在首都Zagreb附近有最大的机会,而在西班牙,最大的折扣可以在Barcelona和Alicante附近找到。在未来的工作中,探索这些按房地产类型划分的数据将是有趣的,这样投资者就可以看到在哪些地方的公寓折扣最大,以及如果投资者想投资耕地应该在哪里寻找。
地理热力图工具使我们能够直观地看到欧盟各地不良房地产的折扣情况。通过分析房地产数据并将其在地图上可视化,投资者能够确定折扣最高的地区,并优先在这些地区寻找不良房地产。这项技术帮助投资者发现了可能会错过的潜在投资机会。