本文目录导读:

要保留原版(即保留第一次出现的数据)并删除重复项,不同的工具(Excel、WPS、Python、SQL)操作方式不同,以下是几种常见场景的详细步骤:
在 Excel 或 WPS 表格中(最常用)
Excel 的“删除重复值”功能默认就是保留第一个出现的记录,删除后续重复项。
操作步骤:
- 选中数据区域(A1:C100,确保包含表头)。
- 点击工具栏:数据 -> 删除重复值。
- 在弹出的对话框中:
- 勾选你想要根据哪几列来判断重复(如果根据“姓名”去重,就只勾选姓名列)。
- 勾选 “数据包含标题”(如果你的第一行是表头)。
- 点击 确定。
- 结果:Excel 会删除除第一次出现之外的所有重复行,保留原顺序和原版数据。
注意:如果数据量很大,建议先备份一份原表。
使用 Python(pandas 库,非常灵活)
如果你需要编程处理,pandas 的 drop_duplicates 方法默认保留第一个。
import pandas as pd
# 读取数据(假设是 CSV 文件)
df = pd.read_csv('your_file.csv')
# 删除基于 '姓名' 列的重复项,保留第一个出现的
df_cleaned = df.drop_duplicates(subset=['姓名'], keep='first')
# 或者按所有列去重
# df_cleaned = df.drop_duplicates(keep='first')
# 保存结果
df_cleaned.to_csv('cleaned_file.csv', index=False)
keep='first':保留第一个出现(默认,可以不写)。keep='last':保留最后一个。keep=False:删除所有重复项。
在 SQL 数据库中
使用 ROW_NUMBER() 配合 PARTITION BY 可以精确控制保留哪一条。
WITH CTE AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY 姓名 ORDER BY id) AS rn
FROM your_table
)
DELETE FROM CTE WHERE rn > 1;
PARTITION BY 姓名:按姓名分组,每组内的重复只保留一条。ORDER BY id:这里的id通常用主键或时间戳,可以控制保留哪一个(ORDER BY id ASC保留最早的一条)。- 如果不指定
PARTITION BY,则全表去重。
如果只是“标记”重复而不删除(用于检查)
如果你不想删除,只想看看哪些是重复项(以便手动处理),可以使用:
- Excel:条件格式 -> 突出显示单元格规则 -> 重复值。
- Python:
df.duplicated(subset=['姓名'], keep='first')会返回一个布尔序列,第一次出现为 False,后续为 True。
关键提醒
- “保留原版” 的关键在于 “保留第一次出现的记录”,绝大多数去重工具默认都是这个逻辑。
- 如果需要保留最后一次出现的(例如日志表),需要明确指定
keep='last'。
如果你能告诉我你具体使用什么工具(Excel/WPS/Python/SQL 等),我可以给出更精确的代码或操作截图级指导。
标签: 删除重复项
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。