尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
影刀RPA 数据去重实战:找出Excel中的重复记录
title: “影刀RPA 数据去重实战找出Excel中的重复记录”date: 2026-07-01author: 林焱影刀RPA 数据去重实战找出Excel中的重复记录从多个系统导出的数据同一条记录可能出现多次。手动查重靠肉眼或COUNTIF公式数据一大效率极低。用影刀Pandas几十万条数据几秒内完成去重还能告诉你哪里有重复。什么情况用什么必须做去重的场景多系统导出的数据合并后同一客户/订单出现多次Excel操作失误行数据被复制粘贴导致重复爬虫采集了多次重复URL/商品数据堆积CRM里同一联系人创建了多个账号手机号相同但名字写法不同不需要去重的场景数据本身就允许重复如每天的日志记录只有一条数据怎么做拼多多店群自动化报活动上架方法1完全相同的行去重最简单【影刀操作】添加【读取Excel】指令文件路径C:\数据\原始数据.xlsx保存结果变量用于Python处理添加【Python】指令importpandasaspd dfpd.read_excel(rC:\数据\原始数据.xlsx)original_countlen(df)print(f原始数据{original_count}行)# 完全重复的行去掉所有列都相同才算重复df_dedupdf.drop_duplicates()removed_countoriginal_count-len(df_dedup)print(f删除重复行{removed_count}行)print(f去重后{len(df_dedup)}行)# 保存去重结果df_dedup.to_excel(rC:\数据\去重后数据.xlsx,indexFalse)yda.set_variable(removed_count,removed_count)方法2按关键字段去重更常用实际业务中重复通常是指某个关键字段相同比如订单号相同就算重复。【影刀操作】添加【Python】指令importpandasaspd dfpd.read_excel(rC:\数据\订单数据.xlsx)# 按订单号去重保留最新的那条假设按日期排序df_sorteddf.sort_values(下单时间,ascendingFalse)df_dedupdf_sorted.drop_duplicates(subset[订单号],# 只按订单号判断重复keepfirst# 保留第一条排序后的最新一条)df_dedupdf_dedup.sort_values(下单时间)# 恢复时间顺序# 找出被删除的重复记录duplicate_maskdf_sorted.duplicated(subset[订单号],keepfirst)duplicate_recordsdf_sorted[duplicate_mask]print(f重复订单数{len(duplicate_records)})print(f涉及订单号{duplicate_records[订单号].unique().tolist()[:10]})# 保存去重结果df_dedup.to_excel(rC:\数据\去重订单.xlsx,indexFalse)# 保存重复记录供人工审查iflen(duplicate_records)0:duplicate_records.to_excel(rC:\数据\重复记录审查.xlsx,indexFalse)print(f重复记录已保存请人工检查C:\\数据\\重复记录审查.xlsx)方法3模糊去重相似但不完全相同客户名写法不一致“张三和张 三”、“北京科技有限公司和北京科技(有限公司)”——这种需要模糊匹配。【影刀操作】添加【Python】指令importpandasaspdfromfuzzywuzzyimportfuzz,processimportre dfpd.read_excel(rC:\数据\客户数据.xlsx)defnormalize_company_name(name):标准化公司名称ifnotisinstance(name,str):return# 去除空格、括号变体、常见后缀namename.strip()namere.sub(r[\s\(\)·•],,name)namename.replace(,).replace(,)namere.sub(r(有限责任公司|有限公司|股份有限公司|公司)$,,name)returnname df[标准化名称]df[公司名称].apply(normalize_company_name)# 找出相似度85的公司名companiesdf[标准化名称].unique().tolist()similar_pairs[]fori,companyinenumerate(companies):ifnotcompany:continuematchesprocess.extract(company,companies[i1:],limit3,scorerfuzz.ratio)formatch_name,scoreinmatches:ifscore85andcompany!match_name:similar_pairs.append({公司A:company,公司B:match_name,相似度:score})ifsimilar_pairs:similar_dfpd.DataFrame(similar_pairs)similar_df.sort_values(相似度,ascendingFalse,inplaceTrue)similar_df.to_excel(rC:\数据\疑似重复公司.xlsx,indexFalse)print(f发现{len(similar_pairs)}对疑似重复公司请人工确认)else:print(未发现疑似重复的公司名)方法4多条件组合去重联系人去重姓名手机号都相同才算重复或者任意一个相同也算。【影刀操作】importpandasaspd dfpd.read_excel(rC:\数据\联系人.xlsx)# 规则1姓名手机号都相同 → 明确重复rule1_dupdf[df.duplicated(subset[姓名,手机号],keepFalse)]# 规则2手机号相同但姓名不同 → 疑似重复可能同一人名字录入不同phone_dupdf[df.duplicated(subset[手机号],keepFalse)]name_diff_phone_samephone_dup[phone_dup.duplicated(subset[手机号],keepFalse)~phone_dup.duplicated(subset[姓名,手机号],keepFalse)]print(f明确重复姓名手机均同{len(rule1_dup)}条)print(f疑似重复手机相同名字不同{len(name_diff_phone_same)}条)# 自动删除明确重复保留疑似重复供人工审查df_cleandf.drop_duplicates(subset[姓名,手机号],keepfirst)df_clean.to_excel(rC:\数据\联系人_去重.xlsx,indexFalse)name_diff_phone_same.to_excel(rC:\数据\疑似重复_待确认.xlsx,indexFalse)有什么坑坑1保留哪条的标准不统一同一订单有两条记录一条金额是1000元一条是1001元保留哪条解决方法先确认业务规则保留最新的保留金额大的保留数据完整的在drop_duplicates的sort_values里体现。TEMU店群矩阵自动化运营核价报活动坑2去重后行数对不上去重前1000行去重后只有500行疑似误删。解决方法永远先保存重复记录到单独文件便于核查不要只输出去重后的数据。坑3模糊去重误判北京联通和北京移动相似度可能85但完全是两家公司。解决方法模糊去重只输出疑似重复清单不自动删除必须人工确认后再清理。坑4NaN值当作相同处理有些字段是空值NaN多条NaN会被判断为重复行被删除。解决方法去重前先处理空值或者在drop_duplicates前过滤掉关键字段为空的行。总结数据去重的关键是定义什么叫重复。完全相同最简单直接处理按关键字段去重要考虑保留哪条模糊匹配要人工确认。无论如何都要保留重复记录的备份万一删错了还能找回来。
RELATED

相关推荐

美团开发岗高频算法题清单

美团开发岗高频算法题清单

美团开发岗的算法难度整体不一定最卷,但有一个很鲜明的特点:题目很贴近后台开发常见的数据结构能力。 也就是说,美团更像是在通过算法题看你是不是一个扎实的后台工程师,而不是单纯看你刷了多少偏题怪题。 美团算法面试特点 偏经…

📅 2026/9/12 9:59:06
国产PLC通信避坑:C#解决信捷PLC数据丢包与断线重连实战

国产PLC通信避坑:C#解决信捷PLC数据丢包与断线重连实战

前言:国产PLC的"隐形门槛" 在工控圈子里,西门子、三菱的通信库被研究得透透的,随便搜一下就是现成的轮子。但当你接手一个使用信捷XC/XD系列PLC的项目时,往往会发现:文档少、社区小、坑还特别多。 去年我们给…

📅 2026/9/11 4:30:13
C#上位机+ONNX Runtime:毫秒级AI视觉缺陷检测系统落地指南

C#上位机+ONNX Runtime:毫秒级AI视觉缺陷检测系统落地指南

前言:当"算法Demo"撞上"产线节拍" 在工业视觉圈子里,有一个心照不宣的共识:算法工程师交付的Python Demo和现场实际运行的C#上位机之间,隔着一道巨大的工程鸿沟。 我见过太多这样的项目:算法团队…

📅 2026/9/5 0:23:40
MORE NEWS

更多资讯

📰

轻量开源版IDEA:Spring Boot开发者高效开发环境搭建指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Vulkan API在Android图形栈中的核心技术与优化实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

C++内存管理核心机制与智能指针实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

LLM开发启动地图:从Python环境到可运行Agent的七层实操路径

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

OpenClaw Browser Relay:轻量级浏览器代理工具部署指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

欧美一氧化碳报警器市场准入与合规指南

1. 项目概述:欧美一氧化碳报警器市场准入分析"合规之盾与风险之鉴"这个标题精准概括了进入欧美一氧化碳报警器市场的两大核心挑战:建立合规防护体系与识别潜在风险。作为深耕安防设备领域多年的从业者,我见证过太多企业因低估这两点…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬