DeepSeek Excel 去重怎么做?按编号保留最新记录并导出复核表

按编号和更新时间清理 Excel 重复记录,停止时间冲突,并导出保留与移除记录供复核。

Excel 里同一个客户编号有多条记录时,先确认“重复”的业务含义,再让 DeepSeek 辅助写代码:本例按客户编号去重,保留更新时间最新的一条,同时把被排除的记录导出,供人工复核。

准备输入与运行环境

需要 Python 3.11,以及通过 python -m pip install pandas openpyxl 安装的依赖。本例在脚本中创建虚构客户表,编号按文本保存;真实表先复制到测试目录,不覆盖原件。更新时间统一使用年-月-日格式。

DeepSeek Excel 去重怎么做?按编号保留最新记录并导出复核表

给 DeepSeek 的任务说明

请用 pandas 处理客户表。列为 customer_id、updated_at、amount;customer_id 是文本。按 customer_id 保留 updated_at 最新的一行。空编号、无效日期要停止;同一编号同一更新时间出现多行要停止供人工裁决。输出 kept 和 removed 两个工作表,并断言原始行数=保留行数+移除行数。不要改原文件。

在本地运行与检查

将下面代码保存为 example_01.py。进入保存该文件的目录,在终端执行 python example_01.py。代码应由你检查后执行,按实际字段修改。

from pathlib import Path
import pandas as pd

out = Path("dedup_review.xlsx")
if out.exists():
    raise FileExistsError("输出已存在,请换新文件名")
df = pd.DataFrame({"customer_id": ["001", "001", "002"],
                   "updated_at": ["2026-09-01", "2026-09-03", "2026-09-02"],
                   "amount": [100, 120, 80]})
# 处理自己的文件时,用 read_excel(..., dtype={"customer_id": "string"}) 替换上面。
df["customer_id"] = df["customer_id"].astype("string").str.strip()
if df["customer_id"].isna().any() or df["customer_id"].eq("").any():
    raise ValueError("有空编号,需要先处理")
df["updated_at"] = pd.to_datetime(df["updated_at"], format="%Y-%m-%d", errors="raise")
if df.duplicated(["customer_id", "updated_at"], keep=False).any():
    raise ValueError("同编号同时间存在冲突,请人工裁决")
ordered = df.sort_values("updated_at", kind="stable")
kept = ordered.drop_duplicates("customer_id", keep="last")
removed = ordered.loc[~ordered.index.isin(kept.index)]
assert len(df) == len(kept) + len(removed)
assert kept["customer_id"].is_unique
with pd.ExcelWriter(out, engine="openpyxl") as writer:
    kept.to_excel(writer, sheet_name="kept", index=False)
    removed.to_excel(writer, sheet_name="removed", index=False)
print("input", len(df), "kept", len(kept), "removed", len(removed))
print(out.resolve())

为什么先排序再去重

keep="last" 保留当前排序下最后一行,不代表自动识别最新日期。因此先解析日期、检查冲突,再升序排序。Excel 原行顺序变化不应改变保留规则。

换成自己的工作簿

读取前确认编号列在 Excel 中本来就是文本;如果 Excel 已把 001 变成数字 1,读取时指定字符串不能恢复丢失的零。字段名需与实际表一致。金额不同不必然说明记录重复,只有业务确认同一编号代表同一实体时才使用本规则。

怎样确认结果正确

示例应打印 input 3 kept 2 removed 1。打开 dedup_review.xlsx,kept 中 001 应保留 2026-09-03、金额 120,removed 中应有旧的金额 100;002 保留。再核对两个工作表行数之和为 3。真实表抽查日期相同、编号缺失及多次更新的记录。

适用边界与常见问题

这是人为构造的数据与规则演示,不是实际客户数据。相同更新时间的冲突会停止处理;每一行都代表独立订单的表不能按客户编号去重。模型建议无法替你定义业务主键,操作前由业务人员确认保留规则。

资料依据

接口说明核验日期:2026 年 10 月 1 日。pandas 去重接口;pandas Excel 读写;日期解析接口。

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

赞 (0)
AI小管家的头像AI小管家
Docker 怎么运行 DeepSeek-R1?用 Ollama 容器持久化模型并验证接口
上一篇 1天前
Ollama 的 DeepSeek API 怎么接入 Python?保留多轮消息并读取流式回答
下一篇 1天前

相关推荐

联系我们

联系我们

1

在线咨询: QQ交谈

邮件:admin@example.com

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

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