用 AI 清洗 CSV,先定规则,再保留一份变更记录 - AIPlan

CSV 清洗怎样避免误删?先约定编码、字段、空值和去重键,保留原始列与变更日志,分开处理重复、缺失和异常记录。

用 AI 清洗 CSV,先定规则,再保留一份变更记录 - AIPlan
清洗 CSV 只有一条铁律:任何一行被删、被改、被补,都要能回溯到原文件的具体行号。做不到这一点的清洗,等于把数据换成了一份无法审计的新表。所以流程是三步,写规则、跑清洗、留变更记录,顺序不能颠倒。 上传之前先固定四件事 这四项没写清,模型每一步都会替你猜一次,猜错的地方事后极难发现。 • 编码。Excel 另存的 CSV 在中文 Windows 上常是 GBK,直接传会得到一堆问号。统一另存为 UTF-8,带不带 BOM 都要记下来。 • 分隔符。逗号、分号、制表符三种都叫 CSV。字段里本身含逗号时,必须有引号包裹,否则列会整体右移。 • 字段类型。金额、日期、编号、邮编分别是什么类型。订单号前导零、以 0 开头的手机号,被识别成数字就会掉位。 • 去重键。到底哪一列或哪几列的组合唯一。是订单号,还是"订单号 + 商品行号",两种定义算出来的重复数量完全不同。 我把这四项写成一段固定开头,每次清洗都复用。写一次省几十次返工。 第一轮只体检,不许改 第一条指令不要写"帮我清洗",写"只统计,不改动": 这份文件有多少行?每列的非空数量、空值数量、去重后取值数量分别是多少?金额列的最小值、最大值、中位数是多少?日期列最早和最晚是哪天? 这组数字的作用是给你一张基线。清洗之后每个数字的变化都应该是你预期的,多出来的变化就是误伤。 同时让它报出列名清单,逐个和你手上的字段表对照。列名对不上,说明表头不在第 1 行,或者有隐藏列被带进来了。 三类问题必须分开处理 重复、缺失、异常,处理逻辑完全不同,混在一次指令里必然出错。 问题类型 判断依据 处理动作 风险 完全重复行 所有字段逐字相同 保留 1 条,其余移入待删表 低 业务重复 去重键相同但字段有差异 按时间或状态保留最新 中,需人工定序 字段缺失 关键字段为空 标记,不自动填 0 高,填 0 会污染均值 数值异常 超出合理区间 单独列出复核 高,可能是真实大单 具体的阈值要自己给。例如"金额小于 0 或大于 100000 元的行单独列出",不要写"找出异常值"。没有阈值的异常检测,模型只能按统计分布猜,猜出来的结果每次都不一样。 缺失值尤其要克制。一列退款金额为空,含义是"没有退款",填 0 是对的;一列用户年龄为空,填 0 会把平均年龄拉低 3 岁以上。同一个空值符号,两种处理。 变更记录怎么写才真的有用 在清洗结果的末尾追加 3 列,不要覆盖原列: • _src_row:原始文件里的行号,从 2 开始(第 1 行是表头)。 • _action:keep、drop_dup、fill、flag 四选一。 • _reason:一句话说明,例如"订单号重复,保留付款时间较早的一条"。 有了这 3 列,任何一条删除都能反查。没有它们,一周后有人问"这 120 行去哪了",你只能重新跑一遍,然后得到另一个 118。 如果清洗后要做汇总,汇总表里再加一列"被剔除行数",让读者一眼看到口径。 让它写脚本,而不是写结论 一次性问答的结果不可复现。数据下个月更新,你得重来一遍,还未必得到同样的结果。 要求它输出可重复运行的 Python 或 SQL,并在回答开头说明运行环境。官方数据分析和文件功能里,Python 跑在有状态的 Jupyter 环境里,可以显示 pandas 表格,但这个环境不能发起外部网络请求或调用 API。需要外部数据时,先上传成文件。 脚本要满足两个条件:读原始文件,写新文件,中间不删除任何磁盘上的东西。这样脚本本身就能当审计材料。 CSV 的大小与配额限制 截至 2026 年 10 月 18 日核对,官方给出的数值是:CSV 和表格文件约 50 MB 上限,具体取决于每行大小;文档和演示文稿单文件 512 MB;文档和文本文件另有 200 万 token 的封顶,这条不适用于表格。 上传频率上限是每 3 小时 80 个文件,Free 账号每天 3 个。这条容易踩:一次清洗尝试拆成十几个小文件反复上传,两轮就顶满了,之后只能等窗口重置。 超过 50 MB 的 CSV,先在本地用命令行切成 10 万行一片,再逐片处理。切的时候留一列"分片编号",合并时靠它还原顺序。 复核只看 20 行,但要看对 清洗完成后按 _action 分组各抽 5 行,回到原始 CSV 用行号定位逐条比对。重点看四类: • 被删的行,是否真的重复; • 被填 0 的行,原本是否为空; • 金额合计是否变化,变化幅度能不能用被剔除的行解释; • 日期边界是否整体平移了一天,时区处理最容易在这里出错。 20 行比对通常 10 分钟内能做完,比重新跑一遍省得多。 如果这一批数据要发给别人,再补一份一页纸的口径说明:清洗前多少行、删了多少行、补了多少个空值、改了多少个格式,四个数字就够了。收件人看到这四个数字,才知道你交的这份表和原始表差在哪。 清洗规则定好之后,下一步往往是出图,选图之前先定清楚要回答的问题;如果源数据本身就是 Excel 而不是 CSV,按指标口径分析的步骤略有不同。原始文件里含客户手机号和地址时,先按上传前的去标识化做法处理,再上传。 截至 2026 年 10 月 18 日核对,文件大小、上传配额与运行环境限制以 OpenAI 帮助中心《Uploading files and audio to ChatGPT》和《Data analysis with ChatGPT》为准;配额会按时段调整,以输入框旁提示为准。 参考资料资料核对日期:2026-10-17 • Data analysis with ChatGPT | OpenAI Help Center • Uploading files and audio to ChatGPT | OpenAI Help Center 延伸阅读• 用 ChatGPT 分析 Excel:先定义指标,再让它计算 • 用 ChatGPT 画数据图:先确定这张图要回答什么 • 上传文件给 AI 前,先删掉任务不需要的信息