Skip to content
 
 

Repository files navigation

70城房价数据 | China 70-City House Price Index

数据更新 城市数量 时间跨度 License: MIT GitHub Pages

🏠 中国国家统计局官方发布的70个大中城市商品住宅销售价格变动数据集,含自动化更新与数据提取工具。

🌐 在线浏览

访问 70 城房价观察,无需下载文件即可:

  • 搜索任意城市,查看新房、二手房及不同面积住宅的同比、环比和定基/累计走势
  • 同屏比较所选城市最新月份的 8 项住宅指数,并点击切换历史趋势
  • 横向比较 70 个城市的最新指数与市场温度
  • 查询单个城市近 12 个月明细,并下载完整 CSV
  • 每个城市另有一页静态汇总(如 深圳),无需 JS 即可查看最新读数与近 12 个月明细

网页以 70cityprice.csv 为唯一数据源。每次主分支更新后,GitHub Actions 会自动生成紧凑的网页数据并部署到 GitHub Pages,无需重复维护数据副本。

✨ 特点

  • 📊 完整历史数据:2006年至今近20年的月度数据(约4.5万条记录)
  • 🔄 自动化更新:一行命令即可更新最新月份数据
  • 🔍 灵活提取:支持按城市、按时间范围等多种方式提取子数据集
  • 📦 即用即走:CSV格式,无需数据库,可直接用于 Python/R/Excel 分析

💡 使用场景

  • 房地产市场研究与趋势分析
  • 城市间房价比较研究
  • 宏观经济政策效果评估
  • 数据新闻与可视化项目
  • 学术论文数据支持

📈 数据预览

北上广深新建商品住宅价格指数走势

点击展开数据样例
DATE CITY FixedBase CommodityHouseIDX SecondHandIDX
2025/12/1 北京 同比 97.6 91.5
2025/12/1 上海 同比 104.8 93.9
2025/12/1 广州 同比 95.2 92.2
2025/12/1 深圳 同比 95.6 94.6

📁 目录结构

70cityprice/
├── 70cityprice.csv         # 主数据文件(2006年至今,当前更新至2026年6月)
├── README.md               # 项目说明文档(面向人类读者)
├── SKILL.md                # AI 协作入口:数据心智模型与流程索引
├── AGENTS.md               # 仓库级 AI 说明(CLAUDE.md 导入此文件)
├── LICENSE                 # MIT 许可证
├── references/             # 领域知识(口径、命名、schema、官方表格解析)
│   ├── schema.md
│   ├── city-naming.md
│   ├── fixedbase-caliber.md
│   └── stats-table-parsing.md
├── workflows/              # 可执行流程
│   ├── monthly-update.md
│   ├── extract.md
│   ├── chart.md
│   └── site-build.md
├── scripts/                # 工具脚本目录
│   ├── extract_70cityprice.py   # 数据提取脚本
│   ├── update_70cityprice.py    # 数据更新脚本
│   ├── validate_70cityprice.py  # 数据质量校验脚本
│   ├── generate_chart.py        # 图表生成脚本
│   ├── build_site_data.py       # 构建网页分片数据
│   └── build_site_pages.py      # 构建 70 城静态页与分享卡片
├── assets/                 # 资源文件
│   └── price_trend.png     # 数据可视化图表
├── site/                   # GitHub Pages 站点源文件
│   ├── index.html
│   ├── app.js
│   ├── styles.css
│   └── city.css            # 静态城市页样式
├── .github/workflows/
│   └── deploy-pages.yml         # GitHub Pages 自动部署
└── projects/               # 生成的数据文件(Git忽略,不上传)
文件/目录 说明
70cityprice.csv 主数据文件,包含2006年至今的完整历史数据
SKILL.md AI 协作入口 - AI 助手处理本数据集前必读,含流程索引
references/ 领域知识 - 定基口径演变、城市命名、CSV schema、官方表格解析约定
workflows/ 可执行流程 - 月度更新、数据提取、图表生成、网页构建
scripts/update_70cityprice.py 自动更新脚本 - 从国家统计局网址抓取新数据并追加到CSV
scripts/extract_70cityprice.py 数据提取脚本 - 按月份/城市提取数据到新文件
scripts/validate_70cityprice.py 数据校验脚本 - 检查结构、主键、月份连续性和70城覆盖
scripts/build_site_data.py 网页数据构建脚本 - 从主 CSV 生成紧凑的浏览器数据
site/ 静态数据浏览器 - 无前端框架和第三方运行时依赖
projects/ 本地生成的数据文件目录(Git忽略)

🚀 快速使用

环境准备

需要 Python 3.9+。首次使用先安装依赖:

pip3 install -r requirements.txt

本仓库所有命令示例统一使用 python3 / pip3。Linux/macOS 默认即可;Windows 用户请使用 Microsoft Store 版本或 WSL,以保证 python3 命令可用。

更新数据

每月国家统计局发布新数据后,只需运行:

python3 scripts/update_70cityprice.py "国家统计局发布页面的URL"

示例:

# 更新6月份数据(7月发布)
python3 scripts/update_70cityprice.py "https://www.stats.gov.cn/sj/zxfbhjd/202507/t20250715_1960403.html"

# 更新1月份数据(2月发布)- 脚本会自动处理没有年度平均的情况
python3 scripts/update_70cityprice.py "https://www.stats.gov.cn/xxgk/sjfb/zxfb2020/202502/t20250219_1958761.html"

脚本会自动:

  1. 从URL抓取所有表格数据
  2. 解析日期(会自动计算上一个月作为数据月份)
  3. 提取70个城市的所有指数
  4. 自动检测表格列数,适配不同月份的表格格式
  5. 1月份特殊处理:由于1月份没有"年度平均"列,脚本会自动使用同比数据作为定基比
  6. 追加到现有CSV文件中(如果该月数据已存在则替换)

提取数据

按月份提取

python3 scripts/extract_70cityprice.py month <起始月份> <结束月份> [输出文件名] [--fixedbase 指数类型]

示例:

# 提取2025年7月至11月的数据(自动保存到 projects/ 目录)
python3 scripts/extract_70cityprice.py month 202507 202511

# 指定输出文件名
python3 scripts/extract_70cityprice.py month 202507 202511 my_data.csv

# 支持多种日期格式
python3 scripts/extract_70cityprice.py month 2024-01 2024-12

# 仅提取环比
python3 scripts/extract_70cityprice.py month 202401 202412 --fixedbase 环比

按城市提取

python3 scripts/extract_70cityprice.py city <城市名1> [城市名2] ... [--output 输出文件名] [--fixedbase 指数类型]

示例:

# 提取单个城市的全部历史数据
python3 scripts/extract_70cityprice.py city 成都

# 提取多个城市
python3 scripts/extract_70cityprice.py city 北京 上海 广州 深圳

# 指定输出文件名
python3 scripts/extract_70cityprice.py city 成都 --output chengdu.csv

# 提取城市的同比+环比
python3 scripts/extract_70cityprice.py city 成都 --fixedbase 同比,环比

组合过滤(城市+月份)

python3 scripts/extract_70cityprice.py filter --cities <城市1> <城市2> ... --start <起始月份> --end <结束月份> [--fixedbase 指数类型]

示例:

# 提取成都和重庆2024年全年数据
python3 scripts/extract_70cityprice.py filter --cities 成都 重庆 --start 202401 --end 202412

# 提取重庆最近三年的环比
python3 scripts/extract_70cityprice.py filter --cities 重庆 --start 202301 --end 202512 --fixedbase 环比

辅助命令

# 列出所有可用城市
python3 scripts/extract_70cityprice.py list-cities

# 列出数据日期范围
python3 scripts/extract_70cityprice.py list-dates

# 校验主数据质量(建议更新后执行)
python3 scripts/validate_70cityprice.py

输出文件位置

情况 输出位置
不指定 --output 自动保存到 projects/ 目录
指定文件名 --output my.csv 保存到 projects/my.csv
指定路径 --output data/my.csv 保存到指定路径

💡 projects/ 目录已在 .gitignore 中配置忽略,生成的数据文件不会上传到 GitHub。

⚠️ 1月份数据说明

每年1月份的数据发布时,表格结构与其他月份不同:

  • 其他月份:包含 环比、同比、年度平均(1-N月平均)三列
  • 1月份:只有 环比、同比 两列(因为1月是第一个月,没有累计平均)

脚本会自动检测这种情况,并将 同比数据复制到定基比 字段中。

🏷️ 城市命名口径说明

  • 主数据存储口径CITY 列统一采用国家统计局当前发布写法(无“市”后缀),例如 北京成都大理
  • 更新脚本写入口径scripts/update_70cityprice.py 在抓取后会自动标准化城市名,写回CSV时保持上述统一口径。
  • 提取脚本输入兼容scripts/extract_70cityprice.py 同时兼容 北京/北京市成都/成都市大理/大理市/大理白族自治州 等常见写法。
  • 历史兼容建议:若你有旧版导出文件(带“市”后缀或“自治州”写法),建议先运行 python3 scripts/validate_70cityprice.py 检查口径一致性。

📋 数据结构

CSV文件列说明

列名 说明 示例
DATE 数据日期 2025/10/1
ADCODE 城市行政区划代码 110100
CITY 城市名称(国家统计局当前写法) 北京
FixedBase 指数类型 同比/环比/定基比
HouseIDX 住宅价格指数(早期数据)
ResidentIDX 住宅价格指数(早期数据)
CommodityHouseIDX 新建商品住宅指数 99.7
SecondHandIDX 二手住宅指数 99.0
ResidentBelow90IDX 住宅90m²以下(早期数据)
CommonResidentBelow90IDX 普通住宅90m²以下(早期数据)
CommodityBelow90IDX 新建商品住宅90m²以下 99.5
Commodity144IDX 新建商品住宅90-144m² 99.6
CommodityAbove144IDX 新建商品住宅144m²以上 99.9
SecondHandBelow90IDX 二手住宅90m²以下 98.8
SecondHand144IDX 二手住宅90-144m² 99.3
SecondHandAbove144IDX 二手住宅144m²以上 99.1

指数类型说明

类型 说明 计算基期
同比 与上年同月相比 上年同月=100
环比 与上月相比 上月=100
定基比 与基期相比/年度平均 基期=100 或 上年同期=100

官方统计附注

  1. 调查范围:各城市的市辖区,不包括县。

  2. 调查方法:新建商品住宅销售价格调查为全面调查,基础数据直接采用当地房地产管理部门的网签数据;二手住宅销售价格调查为重点调查和典型调查相结合,基础数据来源于房地产经纪机构上报、相关部门提供和调查员实地采价。

  3. 计算方法:价格指数的计算方法详见《房地产价格统计报表制度》。

  4. 无成交处理:如当月无成交,则视为价格总体水平无变动。

  5. 口径调整:2023年起将发布定基指数调整为发布年内月累计同比指数,定基指数可由环比指数链接相乘测算得出。

⚠️ 定基指数的口径演变说明

重要提示:本数据集中"定基比"字段的含义随时间发生过变化,在跨年份分析时需特别注意!

背景说明

国家统计局发布的70个大中城市住宅销售价格指数中,"定基指数"曾被广泛用于衡量房价相对于某一固定基期的累计变化。但在实际使用中:

  • 不同年份公布的"定基指数"并不能直接连成一条长期序列
  • 近几年官方已不再直接公布定基指数,而改用"累计涨跌幅"口径

其根本原因在于:定基指数的基期并非永久固定,而是定期轮换

基期轮换机制

根据国家统计局房地产价格统计制度说明,70城住宅价格指数大约每五年进行一次基期轮换,以保持样本结构、权数和价格水平的现实代表性。

基期轮换后:

  • 定基指数的"100"代表的是新的基期年份平均价格水平
  • 新旧定基指数之间不存在天然的可比性

历史阶段划分

使用时间 定基基期 定基列含义
2011–2015 2010年 = 100 相对2010年平均价格水平
2016–2020 2015年 = 100 相对2015年平均价格水平
2021–2022 2020年 = 100 相对2020年平均价格水平
2023年至今 不再公布定基指数 改为发布"年初至今累计涨跌幅"

注意:

  • "2016年启用的新基期"并不是"2016年=100",而是 2015年=100,自2016年1月开始使用
  • 同理,2021年开始使用的是 2020年=100

为什么跨期使用定基指数会产生问题

虽然表头都写着"定基指数",但 2010=1002015=1002020=100 实际上是三条不同基准下的指数序列

如果不做转换而直接拼接:

  • 会人为制造"跳变"
  • 会夸大或缩小长期累计涨幅
  • 在计量或图表中产生结构性断点

定基指数本质是相对某一基期价格水平的指数(相对数),它不能直接用于:

  • 推算房价(元/㎡)
  • 与其他基期下的定基指数直接比较

2023年起的官方口径调整

2023年1月 开始,国家统计局:

  • 停止直接发布定基指数
  • 改为发布 "年内月累计同比指数 / 累计涨跌幅"

该"累计"指标的含义是:年初至当月,价格相对上年同期的累计变化情况。

研究与使用建议

短期分析(1–2年) → 直接使用环比、同比、年内累计指标

阶段性分析(单一基期内) → 使用对应阶段的定基指数(如2016–2020使用2015=100基期)

长期研究(2011年至今)的处理建议

若必须构造长期序列,建议采用以下方法之一:

方法 说明 优缺点
分段分析(推荐) 2011–2015(2010基期)、2016–2020(2015基期)、2021–2022(2020基期)、2023–至今(累计/环比) 与官方统计逻辑完全一致,不引入额外假设
指数再标定(高级) 利用新旧基期的衔接期(如2015年、2020年),将后一段指数换算回前一段的基期 存在四舍五入误差,拼接结果应注明"研究口径构造"

结论性说明

  • 70城房价"定基指数"并非长期固定基期指标
  • 基期轮换是制度性安排,而非统计错误
  • 2023年起停止公布定基,标志着官方对该指标"长期比较用途"的主动弱化
  • 在严肃研究中,任何跨基期的定基比较都必须进行明确的口径说明或技术处理

🏙️ 城市列表

35个直辖市及省会城市

北京、天津、石家庄、太原、呼和浩特、沈阳、大连、长春、哈尔滨、上海、南京、杭州、宁波、合肥、福州、厦门、南昌、济南、青岛、郑州、武汉、长沙、广州、深圳、南宁、海口、重庆、成都、贵阳、昆明、西安、兰州、西宁、银川、乌鲁木齐

35个其他城市

唐山、秦皇岛、包头、丹东、锦州、吉林、牡丹江、无锡、徐州、扬州、温州、金华、蚌埠、安庆、泉州、九江、赣州、烟台、济宁、洛阳、平顶山、宜昌、襄阳、岳阳、常德、韶关、湛江、惠州、桂林、北海、三亚、泸州、南充、遵义、大理

📅 数据发布规律

国家统计局通常在每月15-17日发布上月的70城房价数据。

例如:

  • 2025年7月15日 发布 2025年6月数据
  • 2025年8月16日 发布 2025年7月数据

⚠️ 注意事项

  1. URL格式:确保使用国家统计局官方发布页面的完整URL
  2. 网络连接:脚本需要访问互联网抓取数据
  3. 数据覆盖:如果该月数据已存在,脚本会替换旧数据
  4. 历史数据格式:2011年前后数据结构有变化,部分列可能为空

🔗 数据来源

📜 许可与声明

数据来源

本仓库中的统计数据来源于中华人民共和国国家统计局,属于政府公开数据。

代码许可

本仓库中的工具脚本代码采用 MIT License 开源。

免责声明

本仓库仅提供数据整理与工具服务,不对数据准确性负责。如需官方数据,请访问 国家统计局网站

引用格式

如果您在研究或项目中使用了本数据集,建议按以下格式注明来源:

数据来源:国家统计局《70个大中城市商品住宅销售价格变动情况》
数据整理:70城房价数据项目 https://github.com/[your-username]/70cityprice

About

中国70城房价数据 | China 70-City House Price Index (2006-present) | 自动更新 & 提取工具

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages