重复行:删除前定义观测键
重复行是同一观测被重复记录,不是公司名称相同或者数字相同。删除前需要定义观测键:两个相同金额可能属于不同分部,两个不同金额也可能是同一事实的不同版本。没有这些区分,自动清洗既可能删掉真实披露,也可能留下重复计算。
先用一句话描述数据粒度
一行财务记录可能由主体、报告期间、合并或分部范围、指标、单位和版本共同定义。来源页码帮助定位,但不一定构成经济身份的一部分。同一事实在财报、演示文稿和新闻稿各出现一次,并不会变成三条独立经营观测。
W3C 表格数据模型讨论了行、列与键等结构概念,可帮助研究者明确身份规则。但标准不会替你决定应该采用哪个财务版本、哪个业务分部。这样的决定必须回到披露内容,并保留有意义的维度。
一次假设清洗
假设一家虚构公司披露北区收入 80、南区收入也是 80。提取工具又从财务报表和管理层幻灯片各抓到合并收入 160。随后修订报表把合并收入改为 158。只按公司和期间排序,这五条看起来相似,实际需要三类不同处理。
| 记录组合 | 必须回答的身份问题 | 合理处理 |
|---|---|---|
| 北区 80 与南区 80 | 是否为不同地区范围 | 两条都保留 |
| 两个来源中的合并 160 | 指标、范围、版本是否相同 | 保留一个事实及两个来源定位 |
| 原始 160 与修订 158 | 是否属于不同披露版本 | 保存两版,按研究任务选择 |
两个地区金额恰好相等,不能据此判定重复。两个 160 来自不同位置,也不能据此认为证据相互独立。修订后的 158 虽然数值不同,却可能在当前财务比较中替代原数;若研究历史信息环境,则两个版本及其发布时间都可能重要。
分开检查精确重复与语义重复
整行完全相同是检查意外重复导入的良好起点。保留导入日志,可以追查同一文件为何进来两次。但语义重复需要更丰富的比较:标准化主体标识和单位之后,还要检查报告范围、期间类型与版本。单季度收入与年初至今累计收入,即使金额偶然一致,也不能合并。
格式差异还会制造另一种陷阱。160 万与 1,600 千可能是同一个量。应保存原始字符串和原单位,另外生成有说明的标准化值,再根据披露的舍入精度设置比较容差。不能为了减少待检查记录,把所有接近的金额都视为相同,否则真实修订也会被抹掉。
用候选复核队列代替静默删除
按照拟定经济键生成候选组,分别标记为精确导入重复、重复发布、修订披露或维度尚未解决。优先人工检查金额冲突、单位不同和范围含糊的组。保存保留行、排除行及决定理由,确保后来发现附注差异时能够恢复原记录。
清洗后重新核对唯一观测数和金额总量。案例中地区表仍应合计 160,而选定的修订合并表为 158。这个差异需要解释,不能为了对平而删掉一个地区,或者临时捏造分配数。可能地区表尚未修订,也可能两种表的范围不同;证据不足时,应保留未解决状态。
把被排除记录单独保存,也能区分清洗造成的变化与真实经营变化。如果新版分析结果突然下降,研究者应该能够查明是原始数被修订、重复导入被移除,还是样本范围发生变化,而不是重新猜测自动化工具做过什么。
观测键服务于具体研究任务
不存在通用正确主键。当前估值模型、历史披露档案和模型评估数据集,对版本的要求不同。把任务目的写在键定义旁,保留原始提取结果,对无法确认身份的候选组隔离处理。AI 可以提出相似记录,但相似性不能直接成为删除指令。
常见问题
能只按公司和日期去重吗?
只有这两个字段足以唯一标识当前任务的观测时才行。财务资料通常还需要指标、范围、单位和版本维度。
修订数字应直接覆盖旧行吗?
建议保存原始记录并链接修订,再在派生数据中明确选用哪个版本。这样当前分析和历史信息研究仍然能够区分。