Marx MaxEN
菜单

数据清洗与合并

在 Marx Max 中打开

检查自产模拟表的无效字段、完全重复和键冲突,查看两套独立清洗与合并结果,下载输入、审计表、程序和实际日志。

请阅读项目 README 和数据字典,下载自产模拟清洗包到 reference/,保留 raw/ 与参考成果。检查主表 firm_id + year 的企业年度键和对照表 firm_id 的企业键,保留编号前导零。先检查字段格式与缺失,再区分规范化后的完全重复和同键不同值;隔离无效记录,完全重复保留最早来源行,键冲突整组暂存,不任意选择其中一个值。

用 Python 与 Stata 独立完成多对一合并,输出逐行审计、清洗表、全部匹配状态、主表分析准备表与本次日志到 rerun/。不填补缺失,不静默删除未匹配者,不把对照表独有记录算成企业年度观测;核对两套输出的来源行、键、数值和数量。参考预期是清洗后主表 10 条、对照表 6 条,匹配 8、主表独有 2、对照表独有 1;结果不一致先定位,不为对上数字修改输入。
本次模拟清洗与合并的实际计数:16 行主表保留 10,匹配 8、主表独有 2、对照表独有 1。
图中的数值来自实际程序;各记录的处置和来源见下载包中的逐行审计。

下载完整复做包(ZIP)

查看本案例使用指南

哪些记录进入了合并?

输入表原始无效额外重复冲突暂存保留
企业年度主表1631210
地区对照表101126

所有输入均自产模拟。按企业年度键和企业键分别检查,保留文本编号前导零,先隔离无效值,再移除额外完全重复;同键不同内容整组暂存。Python 和 Stata 独立执行后,数量、逐行状态、清洗数据和合并值一致。原始输入保持,缺失不填补。

合并 11 行,为什么主表仍是 10 条?

匹配成功 8 条,主表独有 2 条,对照表独有 1 条。merged-all.csv 保留三种状态;对照表独有记录没有主表年份,不算新增企业年度观测。analysis-ready.csv 保留清洗后的全部 10 条主表观测,含未匹配者,并保持一条 revenue 和一条 employees 缺失。

Python 仅需标准库,从包根运行 python clean_merge.py --output-dir rerun/python;独立 Stata 练习会话先创建 rerun,再运行 do clean_merge.do rerun/stata。保留参考结果,按来源行号和实际值核对;程序只解释本例规则,不替代真实研究的字段和样本判断。Windows 真机及模型自动执行未覆盖。

继续 Stata 模型比较 · 回到指南