数据分析:把杂乱文件变成可复跑报告
先定口径与数据血缘,再让 Codex 生成脚本、异常清单和可复查报告。
先知道终点
- 做完你会得到
- 一个不覆盖原始数据、能够一条命令重跑并解释异常的报告项目
- 开始前只需要
- 准备脱敏 CSV 或表格样例;知道报告的读者与指标用途
- 最后留下这些证据
- 同一命令从原始样例重新生成结果且不依赖聊天历史;关键指标有独立抽样计算、数据血缘和异常行清单
内容校准于 2026-08-01 · 第 37 / 38 节已发布课程
增长率有两位小数,口径却一个字也说不清
报告显示增长 18.2%。追到明细才发现,退款被当成新订单,美元和人民币直接相加。数字非常精确,结论却没有资格被使用。
数据任务的第一产物不是图表,而是能被复查的口径和血缘。 只有需要留下本地脚本、测试与版本化结果时,这里才选择 Codex。
这节课要交付什么
这不是一份只需要读完的功能介绍。你要在真实但可控的环境中留下一个可以复查的结果,并且能回答三个问题:Codex 看到了哪些事实,它实际做了哪些动作,你用什么独立证据确认结果成立。
最终结果是:一个不覆盖原始数据、能够一条命令重跑并解释异常的报告项目。开始前先创建一份简短记录,把当前环境、目标、禁止动作和验收方式写下来。后面的命令、截图和修改都回到这份记录,不靠聊天窗口里的“应该已经好了”判断完成。
先看官方边界
官方数据集与报告案例当前更直接推荐 ChatGPT Work 处理连接来源和成品。这里选择 Codex 只有一个明确理由:目标是留在本地仓库中的可重跑脚本、测试和版本化口径。如果只需要一次性比较几份上传资料,Work 往往更合适;不要为了使用 Codex 把简单分析工程化。
官方页面会随产品更新。教程引用的是当前可核对的能力与命令,不把界面位置、套餐权限或预览功能包装成永久承诺。你在自己的设备上看到不同按钮时,先核对官方页面和本机版本,再决定是否继续;不要用过期截图覆盖现场事实。
任务现场
运营给出三个月 CSV:同一客户有两个 ID,金额列混有货币符号,退货日期有空值,旧月报却只剩截图。直接问“算增长率”会得到精确但不可追溯的数字。第一步不是写图表,而是建立文件清单、字段画像、指标定义和未知项。
先把现场写成四行:工作目录或项目、当前版本或输入、允许动作、完成证据。如果其中任何一行只能写“让 Codex 自己看”,说明上下文仍然不够具体。Codex 可以帮助检查,但不能替你决定哪些数据能上传、哪个生产动作已获授权,或一个异常是否可以忽略。
动手前准备
复制一份脱敏样例到 input/,将原文件设为只读;在 metric-contract.md 写出分子、分母、时间窗口、去重键、币种和缺失处理。准备 output/ 与 tests/,约定生成物可覆盖、原始输入永不覆盖。对敏感字段做删除或不可逆替换,不把真实客户信息放进教程。
把练习放在可恢复的位置,保留原始输入,并记录开始时的状态。涉及代码时先看版本控制状态;涉及数据时先复制脱敏样例;涉及外部服务时先使用只读或草稿模式。准备工作看似慢,却能让失败变成一次可以解释和回退的实验。
第一步:只读建立基线
让 Codex 只读扫描列名、类型、缺失、重复和日期范围,输出 profile.md 与需要业务确认的问题。先人工回答口径,再允许写脚本。任何无法确认的列都标成未知,不根据名称猜含义;把旧截图当对照线索,不当权威数据。
这一阶段不要急着要求“直接修好”。先让 Codex 复述目标、列出它实际读取的来源,并指出还缺哪些证据。你要检查它有没有打开正确目录、有没有把搜索摘要当原文、有没有把旧日志误当当前状态。基线不可信,后面的修改越多,返工成本越高。
第二步:限制范围后执行
实现分层流程:load 只负责读取,normalize 统一格式,validate 产生错误与警告,metrics 计算口径,render 生成报告。每层保存可检查中间结果或测试。限制脚本只读 input/,只写 output/,依赖锁定在项目文件中。
执行指令应该同时包含目标、范围和停止条件。把“不要乱改”换成可观察边界,例如只允许修改两个文件、不安装依赖、不发送消息、不触碰生产数据。出现新的权限、需要改变既有契约或发现输入口径不一致时,要求 Codex 停下来报告,而不是自行选择更大的方案。
第三步:用独立证据验收
选择五行记录手算关键指标,与脚本输出比较;制造重复 ID、非法金额和空日期,确认验证层会失败或单列异常。删除 output/ 后用一条命令重跑,核对文件哈希、总行数与指标。最后在报告中附来源文件、生成时间、口径版本和未解决数据问题。
验收必须尽量脱离生成答案本身:安装类任务看版本、路径和真实启动结果;界面任务看目标视口与交互;数据任务用独立计算和异常清单;安全任务用原始复现、补丁 diff 与回归测试。把通过、失败和未验证分开记录,未验证不是失败,但绝不能伪装成通过。
完整案例
月报增长率最初显示 18.2%,但抽样发现退货记录被当成新订单,且美元和人民币直接相加。团队没有让 Codex“修数字”,而是补充事件类型与币种契约,验证层拒绝无汇率日期的数据。重跑后增长率改变,报告同时列出被排除行和口径版本。数字变得不那么漂亮,却终于可以解释。
案例的重点不是复制同一句 prompt,而是观察决策顺序:先确定权威来源,再缩小动作面,最后让证据闭环。如果你的项目结构不同,保留这个顺序,替换文件名、命令和验收对象。任何会产生外部影响的步骤,都应在真正执行前再次获得明确授权。
故障诊所
结果每次变化时检查输入排序、当前日期、随机数和外部下载是否未固定。对不上旧月报时先比较口径与数据范围,不为了匹配旧数字硬调公式。内存或编码失败时保留最小样例,分块读取并显式指定编码。图表正确但数据表错误时,以底层明细和独立计算为准。
恢复时一次只改变一个变量。先保存错误原文和当前状态,再判断问题属于安装路径、权限、上下文、实现还是验收环境。不要连续重装、重写和切换工具,因为那会抹掉因果关系。修复后重复最小复现,再跑相邻路径,确认没有用一个新问题遮住旧问题。
迁移练习
换一批结构略有不同的脱敏文件,要求同一流程给出清楚失败,而不是静默生成空报告。补一条新规则后重跑旧样本,确认没有破坏既有指标。最后让不了解实现的人只看 README 和证据目录完成复现。
完成练习后,把其中的产品名和文件名遮住,只保留“输入—动作—证据—停止条件”。如果这四项仍能指导另一个任务,说明你学到的是方法;如果离开示例 prompt 就不会继续,回到任务现场,补出你真正依赖的判断规则。
让别人删除输出目录,也能重新得到同一结论
把 README、输入画像、指标契约、脚本、异常清单和独立抽样交给另一位读者。让他从空 output 目录开始重跑。
如果结果仍依赖你记得在聊天里补过的一句话,流程还没完成。真正的报告可以解释数字从哪里来,也能在输入变坏时明确拒绝。
完成检查
- 选择 Codex 是因为需要本地可维护产物,而非一次性回答
- 原始数据只读且敏感字段已脱敏
- 指标契约包含去重、时间、币种与缺失规则
- 报告可从空 output 目录一条命令重建
- 我保留了开始状态、实际动作和最终证据
- 我把失败、未验证和已通过分开记录
- 需要新权限或外部影响时,Codex 会停下来询问
参考与校准来源
本文是官方资料的中文转译与教学重组,不是逐字翻译;产品能力、命令、默认值与安全边界以下列官方原文为准。