PYTHON · 数据分析 · 空间挖掘

上海房价影响因素挖掘

SHANGHAI HOUSING PRICES EXPLORATION

基于链家上海租房与售房公开数据,从小区粒度构建「每平米月租金、每平米房价、售租比」 三大核心指标,结合空间分布与地理可视化,挖掘影响房价的关键因素。

41万+
租房记录
32万+
售房记录
3 项
核心指标
2 层
小区 → 区域分析
🏠

项目简介

ABOUT THE PROJECT

本项目以链家公开的上海租房数据(house_rent.csv,约 41 万条)与售房数据 (house_sell.csv,约 32 万条)为数据源,围绕「影响房价的因素是什么」这一问题展开。 在数据清洗与小区聚合的基础上,构建可比较的标准化指标,并通过直方图、箱线图与 QGIS 空间可视化,观察房价、租金与售租比在上海市域范围内的分布规律。

📊 数据驱动

真实公开数据集,覆盖房源标题、小区、地址、行政区、价格、面积、经纬度等完整字段。

🧮 指标构建

以「小区」为分析单元,构建每平米月租金、每平米房价与售租比三大可比指标。

🗺️ 空间视角

结合经纬度与 QGIS 地理数据,将价格分布映射到空间,揭示区位对房价的影响。

🧮

核心指标定义

CORE METRICS
每平米月租金
rent_area
月租金 ÷ 面积,单位:元/㎡/月
每平米房价
average_price
房源挂牌均价,单位:元/㎡
售租比
sell_rent_ratio
房价 ÷ 月租金,表示回收月数
售租比 = 每平米房价 ÷ 每平米月租金

售租比是衡量「买房 vs 租房」经济性的关键指标:数值越大,说明房价相对于租金越贵, 买房的投资回收期越长;反之则租房成本相对偏高、买房更划算。结合行政区维度对比, 可以直观看出哪些区域存在明显的价格偏离。

🛠️

分析流程

WORKFLOW

数据加载与清洗

读取 GBK 编码原始 CSV,删除价格 / 面积 / 经纬度缺失或非正的记录,保证样本有效。

小区指标汇总

以小区为粒度取均值,合并租售数据,计算每平米月租金、每平米房价与售租比。

分布与对比分析

直方图观察指标整体分布,按行政区箱线图对比区域差异,截断极端值仅用于绘图展示。

空间分布可视化

基于经纬度绘制上海地图散点,结合 QGIS 行政区 / 道路 / 人口数据做地理叠加分析。

# 核心计算逻辑(streamlit_app.py 摘要)
rent["rent_area"] = rent["price"] / rent["area"]          # 每平米月租金
data = pd.merge(d_rent, d_sell, on="community")            # 小区级合并
data["sell_rent_ratio"] = data["average_price"] / data["rent_area"]  # 售租比
🗺️

空间分布可视化

SPATIAL DISTRIBUTION

以下三张图分别展示上海市域范围内房价、租金与售租比的空间分布。 颜色由蓝到红代表数值由低到高,可以直观看到核心城区与外围区域的梯度差异。

房价空间分布图

房价空间分布

每平米房价的空间梯度,高值集中于中心城区及优质板块。

租金空间分布图

租金空间分布

每平米月租金的分布情况,反映居住需求与租赁市场的空间格局。

售租比空间分布图

售租比空间分布

房价相对租金的偏离程度,识别估值偏高或偏低区域。

💡 交互式版本请运行 Streamlit 应用:可自由切换着色指标、筛选行政区、按小区名搜索,并在地图上缩放查看点位详情。

交互式分析应用

STREAMLIT APP

项目内置一个 Streamlit 交互式分析应用,无需修改代码即可完成以下探索:

📊 数据概览

查看租售数据规模、字段结构、清洗规则与数据样例。

🏘️ 小区指标

按售租比 / 租金 / 房价排序查看小区 Top N,支持模糊搜索。

📈 分布 + 🗺️ 地图

直方图、区域箱线图与交互地图联动,多角度观察分布规律。

# 启动交互式应用(需与数据文件位于同一目录)
streamlit run streamlit_app.py
📂

项目结构

PROJECT STRUCTURE
文件 / 目录说明
house_rent.csv上海租房数据(约 41 万条),字段含 title / community / district / price / area / lng / lat
house_sell.csv上海售房数据(约 32 万条),字段含 property_name / district / total_price / area / average_price / lng / lat
房价影响因素挖掘.ipynb完整分析流程:数据清洗、指标构建、分布分析与空间可视化
streamlit_app.pyStreamlit 交互式分析应用(数据概览 / 小区指标 / 分布分析 / 空间地图)
qgis数据/QGIS 空间分析中间数据(行政区划、道路、人口、市中心等 shapefile)
p01 ~ p03 *.png房价 / 租金 / 售租比空间分布图输出
index.html本项目展示主页(当前页面)
🧰

数据源与依赖

DATA & DEPENDENCIES

🏷️ 数据来源

链家上海租房 / 售房公开数据(2018 年采集快照)。原始文件为 GBK 编码,读取时需兼容少量脏字节。

公开数据集

🐍 核心依赖

Python 3 · pandas / numpy / matplotlib / streamlit;空间分析辅助 QGIS。

pip 安装

📐 数据标准化

行 = 小区(社区),列 = 核心指标(每平米月租金 / 每平米房价 / 售租比),单位统一为元。

标准口径