缺失、零值还是空白:中国财报数据里的三种不同状态
简短回答: 不等于。财报数据有三种彼此不同的状态,含义各不相同。真实的 0 是一个被报告出来的数字。空白单元格是财报模板里有、而申报主体留空的一条。而模板里根本没有的科目,连行都不存在。把这三种并成一种,你就造出了一张全是无人报告过的零的面板。
三种状态,逐一命名
真实的 0 存为 0。存在但为空的单元格,是某份财报模板中包含、而申报主体留空的一条。而某份财报模板中没有的科目,根本没有行。
在构建宽表面板时,请把缺失的 (report_id, item_code) 行视为「未报告」,与空值同等对待,而不要假定每一个代码都会出现在每一份财报里。在全部 431 个代码中,有两个在任何地方都恒为空,其余 429 个都有数据,密度从接近全覆盖到非常稀疏不等。(数库基本面数据,数据截止 2026-04-14。)
最后这个数字才是实务上要紧的。如果你把 431 个代码透视成宽表并用零填充空白,你就等于断言:有几百条科目被那些根本没有申报过该报表附注的公司报告为零。
稀疏是设计使然,不是意外
在数库财务附注中,只有当公司报告了某个组成部分时,它才会出现在对应的报表附注里。缺失的行意味着「未报告」,而不是零。(数据截止 2026-04-09。)
这里的缺失本身就是信息。一家没有披露应收账款账龄表的公司,和一家披露了、但在一年以上区间报告为空的公司,告诉你的是两件不同的事。
一个确实是零、但仍然不是金额的零
招投标数据中约 27% 的中标记录 bid_price 为零,而图谱上的 bid_amount 只汇总已披露的中标金额。在衡量交易规模时,请按正金额筛选。(数据截止 2026-05-29。)
这里的零确实存在于数据中。它表示中标金额未被披露,而不是这份合同不要钱。把它一起平均,会让你算出的每一笔交易规模,按未披露比例整体被拉低。
从未被披露的深度,不是缺失的深度
公司在披露每一条业务线时会选定一个层级。第 1 到 3 层在分部数据里分布密集,第 5 层及以下很稀疏。为了覆盖度请上卷到父层级:汇总可以还原上层合计,却无法凭空造出公司从未披露的细节。(数库产品分类体系,见 2026 年 7 月版数据档案。)
第 5 层上的空白不是一个需要插补的缺口。它是一家报告到第 2 层的公司。