excel-find-duplicates

Polar Sponsor
爱发电 赞助
.NET 9.0

辅助处理excel表格,按指定列寻找重复行

此技能只读, 没有副作用

功能概述

此技能只读, 没有副作用是一项面向实际任务的技能,主要用于遵循 [ [excel- safe- work flow]] Scout 分析双步方法;@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ excel- safe- workflow] Excel Find 重复( 只读) /。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;

结果检查与注意事项

涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

This skill is read-only, no side effects. Follows [[excel-safe-workflow]] Scout→Analyze two-step approach. 本技能只读不写,安全无副作用。遵循 [[excel-safe-workflow]] 勘察→分析两步。

Excel Find Duplicates (Read-only) / Excel 查重(只读)

Function / 功能

  1. Scan for duplicate rows by specified column(s) (or multi-column combination) / 按指定列(或多列联合)扫描重复行
  2. Output duplicate statistics and row number list / 输出重复统计和行号列表
  3. Results can be directly passed to [[excel-delete]] for deletion / 结果可直接传给 [[excel-delete]] 执行删除

Step 0: Requirement Parsing / 第零步:需求解析

Element / 要素 Common Phrasing / 常见表述 Default / 默认值
Key Column(s) / 关键列 "By patent number" / "Column E" / "按专利号查""E列" Must be explicit / 必须明确
Keep Strategy / 保留策略 "Keep first" / "Keep latest" / "保留第一个""保留最新的" Keep first occurrence / 保留首次出现
Output Format / 输出格式 Directly return row number list / 直接返回行号列表 Excel row numbers / Excel 行号

Step 1: Scout (Read-only Scan) / 第一步:勘察(只读扫描)

import pandas as pd

FILE = 'target.xlsx' / FILE = '目标文件.xlsx'
KEY_COL = 'Column Name / 列名'      # Key column name / 关键列名
KEEP = 'first'        # 'first'=keep first occurrence / 保留首次 / 'last'=keep last / 保留末次

# pandas efficient read (C engine, seconds-level) / pandas 高效读取(C引擎,秒级)
df = pd.read_excel(FILE)

total = len(df)
mask = df[KEY_COL].duplicated(keep=KEEP)
dup_indices = df.index[mask].tolist()
dup_excel_rows = [i + 2 for i in dup_indices]  # +2: pandas 0-index → Excel row number (row 1=header) / pandas 0-index → Excel行号(第1行=表头)

print(f'Total rows: {total} / 总行数: {total}')
print(f'Unique values: {total - len(dup_excel_rows)} / 唯一值: {total - len(dup_excel_rows)}')
print(f'Duplicate rows: {len(dup_excel_rows)} ({len(dup_excel_rows)/total*100:.1f}%) / 重复行: {len(dup_excel_rows)}')
print(f'Row range: {min(dup_excel_rows)} ~ {max(dup_excel_rows)}' if dup_excel_rows else 'No duplicates / 无重复')

Multi-Column Joint Dedup / 多列联合查重

KEY_COLS = ['Col1 / 列名1', 'Col2 / 列名2']  # Multi-column joint / 多列联合
mask = df.duplicated(subset=KEY_COLS, keep=KEEP)

Step 2: Output Results / 第二步:输出结果

if not dup_excel_rows:
    print('✅ No duplicates / 无重复数据')
else:
    print(f'nDuplicate row number list (total {len(dup_excel_rows)} rows) / 重复行号列表(共{len(dup_excel_rows)}行):')
    print(dup_excel_rows[:20])  # First 20 / 前20个
    if len(dup_excel_rows) > 20:
        print(f'... and {len(dup_excel_rows)-20} more rows / 还有{len(dup_excel_rows)-20}行')

    # Pass to excel-delete for use / 传递给 excel-delete 使用
    # Format: [row number list], sort descending then delete_rows one by one / 格式: [行号列表], 从大到小排序后逐个 delete_rows

Working with excel-delete / 与 excel-delete 配合

Find-duplicates output directly feeds into delete input: / 查重输出直接作为删除输入:

excel-find-duplicates → [2, 5, 8, 3, 12, ...] → excel-delete delete bottom-to-top / 从下到上删除

Delete-side code / 删除侧代码:

# Receive find-duplicates results / 接收查重结果
dup_rows = [2, 5, 8, 3, 12, ...]  # From excel-find-duplicates / 来自 excel-find-duplicates

# Delete bottom-to-top (critical! avoids row number shifting) / 从下到上删除(关键!避免行号偏移)
for row in sorted(dup_rows, reverse=True):
    ws.delete_rows(row)

Notes / 注意事项

  1. Read-only / 只读:Does not modify original file, safe to run / 不修改原文件,放心跑
  2. Row numbers are Excel row numbers / 行号是 Excel 行号:Row 1 = header, Row 2 = first data row / 第1行=表头,第2行=第一条数据
  3. Large files / 大文件:pandas reading 168MB/330K rows takes ~150s / pandas 读取 168MB/33万行约 150s
  4. Null values / 空值:Multiple rows with None in the key column are treated as "duplicates", only the first is kept / 关键列为 None 的多个行会被视为"重复",只保留第一个

相关专题

更多
Excel制作交互图表的方法 Excel交互式的图表教程大全
Excel制作交互图表的方法 Excel交互式的图表教程大全

Excel交互式图表可通过四种方法实现:一、用切片器控制数据透视图;二、结合下拉列表与INDEX-MATCH动态引用;三、用选项按钮绑定图表系列;四、利用动态命名区域配合OFFSET函数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2026.01.04

1820

12

excel制作动态图表教程
excel制作动态图表教程

本专题整合了excel制作动态图表相关教程,阅读专题下面的文章了解更多详细教程。

2025.12.29

205

12

Excel图表制作全流程
Excel图表制作全流程

本专题整合了excel制作图表的相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.23

240

7

excel xls与xlsx的区别
excel xls与xlsx的区别

本专题整合了excel中xls与xlsx的区别,阅读专题下面的文章了解更多详细内容。

2025.12.23

357

10

excel 绝对值
excel 绝对值

本专题整合了excel绝对值相关教程,阅读专题下面的文章了解更多详细内容。

2025.12.09

839

10

Excel如何制作一个动态交互式图表
Excel如何制作一个动态交互式图表

首先通过准备数据源并创建基础图表,再插入表单控件实现用户交互,接着使用INDEX公式提取对应数据,然后将图表数据源指向动态区域,最后优化布局与标题实现动态更新。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.11.28

1738

9

excel算方差教程
excel算方差教程

计算方差的步骤依次为:1. 计算平均值;2. 计算差异的平方;3. 求和平方值;4. 除以数据点数。想要了解更多相关内容,请阅读专题下面的文章。

2025.05.27

4049

13

怎么用excel制作标签
怎么用excel制作标签

用 Excel 制作标签,若为普通工作表标签,可右键单击标签选 “重命名” 来修改名称;选 “标签颜色” 设置颜色用于区分。若制作数据标签,比如地址标签,先在 Excel 整理好数据,再借助 Word 的邮件合并功能。在 Word 中依次操作:“邮件” 选项卡→“开始邮件合并”→“标签”,选好标签类型,导入 Excel 数据并设置格式,完成后打印 。

2025.04.14

6551

9

excel提取想要的数据
excel提取想要的数据

提取方法有很多种。直接定位:使用“定位”功能选择所需数据。筛选:根据条件筛选数据,显示满足条件的单元格。条件格式:突出显示满足特定条件的数据单元格。高级筛选:指定条件,将提取的数据粘贴到目标范围。公式:使用 index、if、sumif、countif 等函数从数据中提取值。vba 宏:编写脚本以自动提取数据,满足特定条件。

2025.01.08

5430

13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 45.6万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.6万人学习