【从零开始学excel办公自动化】第九课:被 Excel 重复数据坑惨?学会这招 Python,让你秒变数据达人!
- 2026-09-20 22:07:58
【从零开始学excel办公自动化】第九课:被 Excel 重复数据坑惨?学会这招 Python,让你秒变数据达人!#从零开始学 #python #办公自动化 预计阅读时间: 3分钟 
✦✦✦: 
小王接到一个任务,营销部需要发送触达短信给客户,需要把客户清单收集来重复的数据去掉。 于是小王只好盯着屏幕上的 Excel 表格,一个个地删除。 他尝试用 Excel 的 "删除重复值" 功能,选择了 "客户姓名" 和 "手机号" 两列,点击【确定】。 系统提示:"已找到并删除 0 个重复值。" "什么?" 小王不敢相信自己的眼睛,"明明有那么多重复的!" 他仔细检查数据,发现了问题所在: 有些手机号格式不同:"13800138001" 和 "8613800138001" 有些姓名有空格:"张三" 和 "张三" Excel 的去重功能只能识别完全相同的内容,对于这些格式略有差异的重复数据无能为力。 小王开始手动去重,一行一行地检查,一个一个地删除。10 分钟过去了,他只处理了 10 行数据,眼睛已经开始发酸。 "这样下去不是办法啊," 小王揉着眼睛,"27 行数据手动处理都这么费劲,如果是 2700 行、27000 行怎么办?" 更让他担心的是,手动删除很容易出错,万一删错了重要数据,后果不堪设想。 
客户信息表部分展示 难道就没有一种方法,能让我一键搞定、瞬间响应,从此告别这种重复的耐心活吗? 有!答案就在我们今天的课程里,方老师教你的这个方法,只要编写好对应的代码,后面类似问题只要点一点就可以完成。 那我们往下看,要怎么做呢? 
这里方老师推荐使用正则表达式,来去除这些异常内容,空格和特殊字符。 那要怎么做呢?直接看代码,我们新建一个test9.py文件,然后定义一个标准化函数来处理手机号和名字。 ok,就完成了。同学们可以试试增加更多类型的异常手机号试试看。
10年青少年编程教育经验 | 资深Python专家
前大厂技术总监 | 现编程教育创业者
专注青少年编程教育技能提升

前面方老师带大家学习了:安装python和pandas以及番外篇1安装开发工具vscode。
前面学了【从零开始学excel办公自动化】第七课:如何在5秒内将一个excel里面的20个员工工作表里的考核数据合并到一个工作表里的操作,大家可以去回顾一下。
ps:后台回复:“excel课程”获取到目前为止课程的测试文件(失效的话,在留言区留言
)。
今日技能
📱 如何去除excel中的重复数据!
大家有没有在日常工作里遇到小王这样事情。

🔧 第一步:将测试文件拷到我们代码p8文件夹
打开我们程序所在目录,新建一个文件夹p8,然后把文件放到这个目录里

📥 第二步:清晰数据格式
1️⃣ 未能识别的原因
其实小王自己已经发现excel未能识别重复的原因了,无非就是用来标识是否重复的字段中,有空格以及一些特殊字符。
那我们是不是只要把空格和特殊字符去掉就可以了。
2️⃣ 标准化数据字段
# 处理名字,假设都是中国人import pandas as pdimport redef normalize_name(name):return re.sub(r'[^\u4e00-\u9fa5]', '', name)def normalize_phone(phone):"""标准化手机号格式"""if pd.isna(phone):return ''"""提取数字部分"""phone = re.sub(r'\D', '', str(phone))"""处理不同格式的手机号"""if len(phone) == 11:return phoneelif len(phone) == 13 and phone.startswith('86'):return phone[2:]return phone
✅ 通过 r'[^\u4e00-\u9fa5]' 正则表达式,去除所有非汉字的内容。
✅ 通过 r'\D' 正则表达式,去除所有非数字的内容,同时返回标准的手机号以及将86开头的手机号改为正常的手机号。
📥 第三步:数据去重
接下来,我们只要读取客户的excel文件,然后针对名字列和手机列先做标准化处理。
excel_pd = pd.read_excel('source\p8\客户数据.xlsx')excel_pd['标准化名字'] = excel_pd['客户姓名'].apply(normalize_name)excel_pd['标准化手机'] = excel_pd['手机号'].apply(normalize_phone)#去重excel_pd = excel_pd.drop_duplicates(subset=['标准化名字','标准化手机'],keep='last')print(excel_pd)
执行这段代码后,重复的就被去除了。
🎉 同学们,看到这里,你学会了吗!
方老师说: 🚀 现在屏幕前的你已经比90%的同龄人领先一步了!
接下来可以:
用pandas实现如何进行excel数据格式转换(下期教程教!)
⚠️ 遇到问题?评论区甩截图,方老师尽量在24小时内回复!
关注我们,不错过任何一节课! ✨
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。
