让 ChatGPT 写 Pandas 清洗代码怎么验收?用断言核对缺失值、类型与重复行

用固定脏数据和断言验收 ChatGPT 生成的 Pandas 清洗函数,核对缺失值、类型转换、重复行和数量对账。

让 ChatGPT 写 Pandas 清洗代码时,验收标准应先于代码确定:输入行数、主键唯一性、缺失值处理、类型转换失败和重复行策略都要有断言。只看导出的表格整齐,不能证明没有丢行或把坏值静默变成空值。

先给 ChatGPT 一份数据契约

  • order_id 必填且最终唯一。
  • amount 必须能转为非负数,失败行进入隔离表。
  • 同一 order_id 重复时保留规则必须明确。
  • 所有删除或隔离都输出数量和原始 ID。

标题结论:ChatGPT 生成的 Pandas 清洗代码要用固定输入和断言验收缺失值、类型与重复行,不能只检查最终外观。

让 ChatGPT 写 Pandas 清洗代码怎么验收?用断言核对缺失值、类型与重复行

一个可复查的清洗函数

import pandas as pd

def clean_orders(raw):
    df = raw.copy()
    df["order_id"] = df["order_id"].astype("string").str.strip()
    df["amount_num"] = pd.to_numeric(df["amount"], errors="coerce")
    bad = df[df["order_id"].isna() | df["order_id"].eq("") |
             df["amount_num"].isna() | df["amount_num"].lt(0)].copy()
    good = df.drop(index=bad.index).drop_duplicates("order_id", keep="last")
    assert good["order_id"].is_unique
    assert good["amount_num"].notna().all() and good["amount_num"].ge(0).all()
    return good, bad

raw = pd.DataFrame({"order_id":[" A1 ","A1","B2","C3"],
                    "amount":["10","12","bad","-1"]})
good, bad = clean_orders(raw)
print(good[["order_id","amount_num"]].to_dict("records"))
print("bad_ids", bad["order_id"].tolist())

读者下一步:把真实规则写成五到十个最小样例和断言,再让 ChatGPT 修改函数,而不是直接把全量敏感文件上传。

验收清单

结果验证:示例应只保留 A1 的最后一条且 amount_num 为 12,B2 与 C3 进入 bad;输入行数应能由保留、隔离和按规则去重的数量对账。

errors=”coerce” 会把不能解析的值变为缺失值,所以必须保留 bad 表;drop_duplicates 的 keep=”last” 只有在“最后一条”有可靠排序含义时才成立。

限制

失败边界:示例数据是人为构造且不含时区、货币、小数精度和多表关联;上传业务数据前还要执行脱敏、权限和保存期限检查。

依据与核验日期

以上页面于 2026-10-01 核验。版本更新后,应重新查看参数含义和默认值。

Ai菜鸟网。发布者:AI小管家,转载请注明出处:https://www.alyyhw.com/31236.html

赞 (0)
AI小管家的头像AI小管家
OpenAI API 怎么用?Python 从安装 SDK 到拿到第一次回答
上一篇 1天前
OpenAI API 长任务怎么后台运行?启用 background 后轮询状态并取回结果
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部