区县逐月房价数据解析:从Excel清洗到GIS专题图实战

做房产数据分析的人,应该都经历过这种尴尬:想研究某个板块的房价走势,翻遍公开数据,要么只有整个城市的平均值,要么只有季度甚至年度的颗粒度,根本没法看清“哪个区在涨、哪个区在横盘”。我这些年折腾各类数据源,最深的一个体会是——把数据从市级下沉到区县级,把时间刻度从季度切到逐月,能解锁的分析思路完全不一样。最近看到这份2019-2025年我国区县逐月新房房价数据,发现它正好同时满足这两个关键条件,还贴心地提供了Excel和Shp两种格式,所以想好好拆一拆它到底怎么用、能做什么、有什么坑。

这份数据覆盖全国区县维度,以月份为时间刻度,记录了新房住宅价格的长期序列。对做宏观趋势判断、板块对比、GIS空间可视化的朋友来说,它解决的是“区域冷热不均”和“趋势跟踪滞后”这两个核心痛点。我打算先从数据结构讲起,再聊数据清洗的细节,最后给出一套从Excel分析和Python出图到QGIS专题图的可落地方案。

1. 这份数据到底装了什么:先看结构和字段

1.1 区县级加上逐月,这个组合为什么稀缺

经常研究房地产数据的朋友都知道,数据源很多,但真正好用的少。宏观层面的指数到处都是,但那不是给你做片区研究用的;到了城市层面,数据开始变得粗糙,一年四个季度就算不错的粒度了;再往下走到区县,公开数据就非常零散。

区县级和逐月这两个属性凑在一起,稀缺性是加倍的。先说逐月。年度数据太“钝”,季度数据滞后明显,而月度几乎是捕捉行情拐点的最小可用刻度。一份从2019年1月开始的逐月数据,意味着你能复现六年多时间里每一个短期波动节点,比如年初数据惯性、年中供应放量带来的价格结构变化、年末成交节奏变化对均价的影响。这些细节在季度数据里会被直接抹平,根本看不出来。

再说区县级。市级均价是最容易骗人的指标,因为同一个城市内部,核心区和远郊完全是两种市场。把上涨板块和横盘板块混在一起求平均,得到的结果谁都不代表。只有到区县这个颗粒度,才能回答“这个城市里到底是哪里在领涨、哪里最抗跌、哪里还在阴跌”。对投拓、研究和普通购房者来说,这个颗粒度的信息量完全不一样。

1.2 同一份数据为什么要同时出Excel和Shp两个版本

我先说结论:这两个格式解决的是完全不同的问题。Excel版解决的是“算”的问题,Shp版解决的是“画”的问题。很多数据产品只给表格,给Shp的很少,因为整理边界数据、做好属性绑定、保证代码能对上,需要额外花不少功夫。

格式核心用途典型场景
Excel筛选、透视、制表、建模拉出某个区县的时间序列,算环比同比,做常规图表
Shp空间关联、地图渲染、空间统计给区县多边形上色生成专题地图,做空间自相关分析

如果你只是做价格序列对比、涨幅排名,Excel完全够用,没必要把问题复杂化。但一旦涉及空间视角,比如想看看“高价区县在地图上是不是成片聚集”“某个板块向外传导的路径是什么”,Shp格式就变得不可或缺。这份数据把“区县行政边界”和“房价属性”绑定在了一起,省去了你到处找带行政区划代码的边界文件再手工关联的麻烦。

1.3 上手第一步:先认全这些核心字段

不管打开Excel还是Shp的属性表,字段逻辑是统一的。常见的字段大概有下面这些:

  • 行政区划代码:6位数字,县级标准代码,这是贯穿所有数据关联操作的主键
  • 省份、城市、区县名称:用于快速筛选和理解层级关系
  • 年月:记录数据所属月份,格式可能是“2019-01”或“2019年1月”
  • 新房均价:当月纳入统计的新房住宅均价
  • 环比涨跌幅:与上一个月比较的价格变化百分比
  • 同比涨跌幅:与上一年同月比较的价格变化百分比
  • 样本量:纳入统计的楼盘数量或成交记录条数

这里我要特别强调样本量字段,很多人会忽略它,但它是判断数据可靠性的命门。举个例子:某个区县本月均价从1万跳到1.3万,看着像是暴涨,结果你把样本量一打开,发现本月只有1个高端楼盘开盘,其他楼盘零成交,那么这个涨幅根本不是真实的市场信号,而是样本结构变化造成的假波动。没有样本量字段,你连判断的基础都没有。

还有一点要注意:字段命名在不同版本里可能不一致,比如均价在Excel里可能叫“均价”,到Shp属性表里就简写成“avg_price”或者“JZ”。所以拿到数据的第一件事,是把所有列名过一遍,确认每个字段的含义,再开始动手分析。

2. 别急着分析:数据清洗的五个关键动作

2.1 一致性检查:代码、时间、名称一个都不能少

很多朋友拿到别人整理好的数据,感觉挺干净,就直接透视出图,结果跑起来全是问题。我踩过太多坑,按出现频率排序,第一个坑几乎总是行政区划代码。

这几年县级行政区划调整并不少见,有的县改了区,有的市辖区合并,有的新区启用了新代码。如果你拿2025年的数据关联一份旧版区划边界,很多区县会对应不上。处理方法是统一以最新行政区划代码为准,先建一张新旧名称映射表。第二个坑是时间字段格式不统一,有的写“2019-01”,有的写“2019.1”,有的写“2019年1月”,有的干脆是八位数“201901”。分析前务必统一成标准时间格式,否则排序会乱,透视表还会把同一个月拆成两个部分。第三个坑是名称和代码对不上,同名不同区、同区不同名在数据拼接时经常上演。我自己的铁律是:统一用6位行政区划代码做主键,名称只用来人肉核对,绝不拿名称做关联。

2.2 价格字段的三个口径陷阱,不懂要吃亏

房价数据最容易翻车的地方是口径。同样是“新房均价”,数据源不同,算法可能完全不同,放在一起比较等于把苹果和橘子相加。

第一种是网签口径,统计当月实际网签合同的价格。优点是样本量大、贴近市场成交,但缺点也很明显:有些签约为了各种原因做低或做高价格,极端值会直接影响均值。第二种是备案口径,来自预售许可的备案价格。这类价格的波动天然滞后于真实成交,因为调整备案价有流程有周期,看到的数据往往慢一拍。第三种是统计口径本身的范围差异:有的数据把保障房、安置房包含进去,有的只统计商品住宅,有的剔除别墅,有的不剔除。哪怕同一个区县,用不同口径算出来的均价能差出两成。

所以拿到数据后,我的习惯是先做一轮价格合理性扫描。把每个区县的月度序列拉出来,用折线图看有没有突兀的跳点,然后回看样本量和原始说明,判断跳变是真实行情还是口径变化。这十分钟的检查,能在后面省下几小时的返工。

2.3 一份可复用的Pandas清洗脚本,拿走不谢

整理这类数据,我建议直接用Python一把梭,效率比手工操作高太多。下面这段脚本是我处理同类数据的通用套路,可以直接抄:

import pandas as pd df = pd.read_excel("house_price.xlsx", dtype={"区划代码": str}) # 1. 统一时间格式 df["年月"] = pd.to_datetime(df["年月"], format="%Y-%m").dt.to_period("M") # 2. 区划代码补零,确保是6位字符串 df["区划代码"] = df["区划代码"].str.zfill(6) # 3. 缺失值规则:样本量为0或空值时,均价直接标记为缺失 df.loc[df["样本量"].isna() | (df["样本量"] == 0), "均价"] = pd.NA # 4. 去除同一区县同一月份的重复记录,保留样本量最大的一条 df = df.sort_values("样本量", na_position="last") df = df.drop_duplicates(subset=["区划代码", "年月"], keep="last") # 5. 计算环比涨幅 df = df.sort_values(["区划代码", "年月"]) df["环比涨幅"] = df.groupby("区划代码")["均价"].pct_change() * 100 # 6. 导出清洗结果 df.to_csv("house_price_clean.csv", index=False, encoding="utf-8-sig")

这段脚本里有几个细节值得展开说说。排序那行很多人会省略,但如果不去重前先按样本量排序,保留规则就是随机的,同一份数据分析三次可能得到三个不同结果。补零那步看着简单,实际非常关键,Excel读进来的行政区划代码会被当成数值,前导0丢失,和Shp属性表里的字符型代码对不上,后面所有关联都会失败。

3. 三大分析方向:从涨幅排行到空间洞察

3.1 方向一:五分钟建立一张区县涨幅排行表

日常分析中Excel依然是最顺手的工具。数据清洗完之后,直接插入数据透视表:行放区县名称,列放年月,值放均价,然后拉出环比或同比计算,一份当月涨跌榜就出来了。熟练的话,从打开文件到得到榜单,五分钟以内可以完成。

进阶玩法是条件格式。选中最右侧的涨幅列,用红绿双色色阶做渲染,哪个板块在启动、哪个板块在回落,一眼就能看出来。如果你要把这张表发给别人,建议把列宽锁定、数值格式统一,再进行筛选,成品会显得专业很多。这里有个小提醒:红色代表上涨、绿色代表下跌只是行业习惯,各团队可能相反,关键是内部统一,别搞混。

3.2 方向二:用“时间差”找出板块传导链

市级研究很难观察板块传导,但区县数据到位之后,这个概念就变得可操作了。把同一个都市圈里的区县拉出来,对比它们的月度曲线,你会发现市场启动往往不是所有地方同步,而是从某个核心区开始,顺着交通线路向外围扩散。用逐月数据,你可以做一个简单的领先滞后分析。

这个分析不需要高深的模型,把两条序列放到同一张折线图上,手动错位两到三个月对比,肉眼就能看出先后关系。比如某区县价格开始上涨两个多月后,相邻区县才开始跟进,这样的节奏感在市级数据里完全看不到。我建议每做一次这样的小对比,就做一个标注记在笔记里,积累几个周期之后,你对城市板块格局的理解会比只看地图深刻得多。

3.3 方向三:Shp带来的空间统计视角

一旦进入Shp格式,分析就打开了另一个维度。最常见的操作有三类。

第一类是专题图渲染,把均价或涨幅字段绑定到区县边界多边形上,用分级设色做成热力地图。这是最直观的成果展示方式,也是Shp格式最核心的价值。第二类是空间自相关分析,常用的是莫兰指数,用来判断房价在空间上是否存在聚集效应。实操中你会发现,高值区县和低值区县往往各自聚集,形成典型的空间分层结构。第三类是叠加分析,把房价和地铁站点密度、教育资源数量、商圈分布放在一起做协同分析。区县房价数据是整个分析链条的地基,没有它,后面所有叠加研究都无从谈起。

4. Shp格式实操:从边界文件到专题图

4.1 拿到Shp先检查,别急着拖进软件

Shp是GIS里的通用矢量格式,但它不是“一个文件”,而是一组文件。完整的一套至少包含.shp(几何坐标)、.shx(索引)、.dbf(属性表)、.prj(坐标参考信息)。如果缺了.prj,软件不知道坐标参考系统,图层可能会画到错误位置甚至画不出来。常见的还有.sbn和.sbx空间索引文件,以及.cpg字符编码文件,少了一两个通常不影响打开,但打包传输时最好整包带上。

我见过太多人只复制了一个“.shp”文件,拖进QGIS就报错“无法打开图层”,原因基本是.shx或.dbf没有跟着一起复制。记住,Shp是系列文件,必须成套使用。解压之后也先确认一下文件都在,再开始操作。

4.2 Python一条龙:读取、关联、出图

如果不想开GIS软件,用Python和geopandas就能完成全套工作流。示例代码:

import geopandas as gpd import matplotlib.pyplot as plt import pandas as pd # 读取边界与房价数据 boundary = gpd.read_file("county.shp") df = pd.read_csv("house_price_clean.csv", dtype={"区划代码": str}) # 按行政区划代码做属性连接 merged = boundary.merge(df, left_on="区划代码", right_on="区划代码", how="inner") # 筛选某一个月 target = merged[merged["年月"] == "2024-06"] # 分级设色出图 ax = target.plot(column="均价", cmap="RdYlGn_r", legend=True, scheme="Quantiles", k=6, figsize=(10, 8)) ax.set_title("2024-06 区县新房均价分布") ax.set_axis_off() plt.tight_layout() plt.savefig("house_price_map.png", dpi=200)

这段代码中最容易出问题的不是绘图,而是merge这一步。两边关联字段类型不一致时,比如一边是字符型“110102”,另一边是数值型110102,匹配结果会出现大量空值,地图上就是大片空白。所以我在读CSV时就强制指定区划代码为字符串类型,再从源头用zfill补位,把这个坑提前填平。

4.3 QGIS图形化操作:不写代码也能出正式图

不想碰代码的朋友,QGIS是最省心的选择。操作路径很固定:先把Shp拖进图层面�板,如果里面的属性表只有边界没有房价数据,就通过“图层”菜单里的“属性连接”,把Excel按行政区划代码关联进来。然后双击图层打开样式设置,选择“分级”渲染,字段选“均价”,模式选“分位数”,颜色带选红绿渐变,一张专题图雏形就出来了。最后用“布局管理器”新建布局,添加地图、图例、比例尺和指北针,导出PNG或PDF,就是一张可以直接发布的结果图。

整个过程熟练之后,十分钟足够完成。我每次做完都会检查一下属性表里的记录数,如果连接后记录数明显减少,八成是关联字段类型不匹配,这是QGIS里最经典的问题。

5. 常见问题与排坑实录:这些细节决定数据能不能用

5.1 区县数据缺失了,补全还是删除

区县级数据天然存在缺失,原因多种多样:有的区县当月确实没有新房成交,有的数据源覆盖不到,有的新区成立时间晚,只有最近几年的记录。我的经验是,处理方式取决于分析目的。

做时间序列分析时,我倾向于用前向填充或线性插值补缺失月份,但有一个前提:如果某个区县连续超过半年没有成交记录,说明市场活跃度极低,插补出来的数字没有统计意义,宁可直接剔除。做横截面排行时则反过来,用“最近一个有数据的月份”参与比较,并在报告里注明数据时点,避免拿不同月份的数值做横向对比。

5.2 行政区划调整导致的数据断档怎么解

这是区县数据分析最绕不开的现实问题。行政区划代码不是一成不变的,这几年撤县设区、乡镇合并、新区成立持续发生,最稳妥的做法是建立一张新旧名称对照表,把所有历史数据映射到当前区划口径下再分析。

具体操作上,我会先把数据里所有区县名称拉成清单,逐一核对最新代码。已经撤销或者合并的区县,要根据原始归属做拆分或合并计算,这个过程确实麻烦,但绝不能省。否则图上会冒出一堆“幽灵区县”,名字还在属性表里,到最新版边界上却找不到对应图形,最终做任何空间分析都会报错。

5.3 Shp中文乱码,不是玄学是编码问题

GIS新手遇到中文乱码,第一反应往往是数据坏了。其实原因很直接:Shp的dbf属性表里,字符串编码要么是UTF-8要么是GBK,软件默认的解码方式不对,就会显示一堆乱码。解决办法也简单,QGIS里加载图层时手动选择Encoding为UTF-8或GBK,试到正确为止。如果用Python处理,就在geopandas读取时明确指定encoding参数,比如encoding='utf-8'或encoding='gbk'。用代码控制编码,比在GUI里反复试错省心得多。

5.4 均价突然大涨大跌,到底信还是不信

这是最核心的判断题。任何区县只要出现单月均价大幅波动,先别急着下结论,按三步走:第一步查样本量,样本量很小就基本可以认定为结构性波动;第二步查当月新开楼盘,如果大量成交集中在某类产品上,说明是供应结构变化导致的,而非整体价格变化;第三步查相邻月份,假如前后几个月都很稳定,只有单月突变,大概率是数据口径或纳入项目调整造成的假信号。

做完这三步查证,你就有底气在报告里写“该区县本月均价变动主要受样本结构影响”,而不是被一个孤立跳点带偏整份研究的结论。

我个人的习惯是,拿到这类数据头一个星期只做一件事:摸清楚字段的“脾气”,而不是急着出图。数据是死的,但字段口径、代码规则、缺失形态这些“脾气”是活的,花半小时把区划代码和月份格式统一好,后面所有分析都会顺;要是跳过这步直接出图,你大概率会在后续环节被各种莫名其妙的问题连环折腾。还有个实用的小技巧:Excel透视表做好之后,把列宽锁定、数值格式统一再往外发,收到表格的人对专业度的判断,往往就来自这些细节。区县级逐月房价数据,本身就是一轮很好的行情样本,建议你用它练两次板块对比、出一张专题图,做完之后你对“数据颗粒度”这个词的理解,会比读十篇分析文章都深刻。

相关新闻

NIO Channel与Buffer的OS级本质:从文件描述符到零拷贝内存

NIO Channel与Buffer的OS级本质:从文件描述符到零拷贝内存

1. 项目概述:为什么NIO的Channel和Buffer不是“另一个IO”,而是操作系统视角的重新建模“网络编程——OS层级NIO的Channel和Buffer”,这个标题里藏着一个被大量初学者误读的关键定语:“OS层级”。很多人学完Java NIO,会…

2026/10/19 15:48:21 阅读更多 →
基于开源组件的代码审查工作流:从流程设计到落地实践

基于开源组件的代码审查工作流:从流程设计到落地实践

代码审查这事儿,平时被吐槽的次数远比被夸的时候多。一说要 review,第一反应往往是“又得花时间看别人的代码”。但真正在开源项目里泡久了你会发现,审查不是走过场,它其实是项目质量最后的防线,也是新人上手最快的路径…

2026/10/19 15:48:21 阅读更多 →
open-code-review实践:从代码评审到机器预审与规则沉淀

open-code-review实践:从代码评审到机器预审与规则沉淀

1. 代码评审为什么会沦为“走过场”:我见到的几种典型崩溃方式代码评审这件事,在大多数团队里都处于一种很微妙的状态:所有人都知道它重要,但它往往又是最先被牺牲掉的那个环节。我接触过不少项目,也参与过一些开源仓库…

2026/10/19 15:48:21 阅读更多 →

最新新闻

电商客服导购智能体落地实践:从意图识别到可控架构

电商客服导购智能体落地实践:从意图识别到可控架构

最近做完了这个电商客服导购智能体的项目,从需求梳理到上线总共花了两个多月。做完之后最大的感受是:把客服和导购塞进同一个系统里,远不是"加个意图分类"那么简单。运营团队要的是售后问题别答错、售前问题能帮着促成下单&#xf…

2026/10/19 16:32:45 阅读更多 →
从SaaS到自建:企业CRM系统设计与私有部署实战

从SaaS到自建:企业CRM系统设计与私有部署实战

1. 为什么要自己动手做一套CRM我是从2024年三季度开始动手做 DeskcommCRM 这个项目的。当时团队规模不大,销售、客户成功、售前加起来也就二十来号人,但客户信息已经散得没法看了:有人用Excel登记,有人直接记在微信备注里&#xf…

2026/10/19 16:32:45 阅读更多 →
基于人工智能的恶意软件检测系统:特征工程与模型训练实战解析

基于人工智能的恶意软件检测系统:特征工程与模型训练实战解析

做网络安全方向的朋友应该都清楚,传统恶意软件检测基本靠两条路:特征码签名和规则匹配。签名库要不断人工更新,遇到变种或加壳样本就非常被动。这个“基于人工智能的恶意软件检测系统”项目,说白了就是把这个问题交给模型去做——…

2026/10/19 16:32:45 阅读更多 →
ADINA v9.7中文手册正确配置与使用指南

ADINA v9.7中文手册正确配置与使用指南

简介:本资源为ADINA中文手册与入门教程合集,面向结构、流体、热传导等工程领域的初学者及仿真工程师,旨在系统解决非线性有限元建模与分析的学习门槛问题。压缩包共3个文件(1.57MB),含核心PDF教程《aybook.…

2026/10/19 16:32:45 阅读更多 →
NX二次开发:Block UI中Specify Point控件数据获取完整指南

NX二次开发:Block UI中Specify Point控件数据获取完整指南

做NX二次开发界面,尤其是用Block UI搭向导式对话框的时候,Specify Point(指定点)控件是绕不开的一个基础件。它看起来就是一个带小图标的选择框,用户点一下就能选出一个点,好像没什么好说的。但我见过好几个…

2026/10/19 16:32:45 阅读更多 →
ETL工具迁移实战:从国际平台到国产化替换的踩坑与调优

ETL工具迁移实战:从国际平台到国产化替换的踩坑与调优

去年年初接手了一个挺棘手的任务,把集团的数据集成平台从一套用了快十年的国际商业ETL工具,整体迁移到国产ETL平台。以前聊这种迁移,大家第一反应都是“换工具嘛,重新配一下连接、把映射搬过去”,真做起来才发现完全不…

2026/10/19 16:31:38 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/19 10:02:04 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 9:10:22 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →