在Python中创建地理热力图,以发现房地产折扣的不良情况。
微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩
来源:https://www.bankrate.com/real-estate/distressed-property/
不良房地产物业是指濒临取消抵押品赎回权的房屋或已经被银行拥有的房屋。投资者经常寻找这些房产,因为有机会以折扣价购买房屋。
然而,寻找这些房产并评估它们的潜力可能是一项具有挑战性的任务,尤其是在房地产市场复杂的大城市。
地理热力图可以成为发现不良房地产折扣的有力工具。热力图使用颜色编码来表示地图上的价值,使之可以轻松识别趋势和模式。在本文中,将展示如何在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附近找到。在未来的工作中,探索这些按房地产类型划分的数据将是有趣的,这样投资者就可以看到在哪些地方的公寓折扣最大,以及如果投资者想投资耕地应该在哪里寻找。
地理热力图工具使我们能够直观地看到欧盟各地不良房地产的折扣情况。通过分析房地产数据并将其在地图上可视化,投资者能够确定折扣最高的地区,并优先在这些地区寻找不良房地产。这项技术帮助投资者发现了可能会错过的潜在投资机会。
推荐书单
《Pandas1.x实例精解》
《Pandas1.x实例精解》详细阐述了与Pandas相关的基本解决方案,主要包括Pandas基础,DataFrame基本操作,创建和保留DataFrame,开始数据分析,探索性数据分析,选择数据子集,过滤行,对齐索引,分组以进行聚合、过滤和转换,将数据重组为规整形式,组合Pandas对象,时间序列分析,使用Matplotlib、Pandas和Seaborn进行可视化,调试和测试等内容。此外,该书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。《Pandas1.x实例精解》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。
精彩回顾
微信搜索关注《Python学研大本营》,加入读者群
访问【IT今日热榜】,发现每日技术热点