本代码分别对指定目录(路径='G:\\Xct\\python')下的EXCEL文件:文件01.xlsx和文件02.xls进行重复行标记,这样便于在EXCEL中用“自动筛选”的功能将重复行和非重复行过滤出来,是要删除,还是要修改,随你便。之所以没有直接删除,是考虑到:实际工作中,删除数据还是要谨慎起事,看一眼再处理,总是好的。

大家如果需要,可自行修改如下代码中的路径和文件名为自己的。

代码主要涉及到pandas数据分析包各种方法的使用,还有collections容器集合的调用。

我是个python初学者,所以在代码中啰哩吧嗦地添加了许多注释,以帮助自己学习或复习,请大家不要见怪,其实去年注释,代码没那么长的。

还有,我英文不好,所以在代码中,能用中文的绝不用鸟语,请习惯英文的亲见谅。

如下是全部代码,有用得着的亲尽管复制去吧:

(记得改“路径”和“文件01”、“文件02”为自己的文件哦)

#在命令行下安装pandas库,如果没安装过的话
#pip install pandas
'''
Pandas是python的一个数据分析包,是为解决数据分析任务而创建的。
它提供了大量能使我们快速便捷地处理数据的函数和方法。
'''#切换工作目录
import os
路径='G:\\Xct\\python'
os.chdir(路径)
#定义要处理的文件
文件01='有重复的名单.xlsx'
文件02='不重复的名单.xlsx''''代码1:标记同一张EXCEL表格中的重复行'''
# 导入pandas库
import pandas as 数据分析包
# 加载数据,.read_excel(文件)方法用于打开EXCEL文件,支持xls,xlsx
数据文件 = 数据分析包.read_excel(文件01)
#-----------------------------------------------------
# 找出重复行
重复行 = 数据文件[数据文件.duplicated(keep='first')]
#pandas.duplicated()用于查找和标记重复值。
# 它返回一个布尔值的数组,指示每个元素是否为重复项。
#语法:
# pandas.duplicated(subset=None, keep=’first’)
#subset: 可选,用于标识重复项的列名或列名列表。默认情况下,它比较整个行。
#keep: 可选,标记重复项的方式。如果为’first’,表示第一个出现的项
# 不会被标记为重复;如果为’last’,则最后出现的项不会被标记为重复;
# 如果为False,则所有重复项都会标记为True。默认为’first’。
#-----------------------------------------------------
# 标记重复行
数据文件.loc[重复行.index, '重复'] = '是'
#pandas 的 .loc() 方法是一个用于选择行和列的函数,
# 通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行)
# 在数据帧名称后面跟上 .loc[],然后在方括号内输入行和列的标签,
# 标签可以是整数、字符串或布尔值。
#-----------------------------------------------------
# 将标记后的数据保存到新的Excel文件
数据文件.to_excel('标记重复行.xlsx', index=False)
# pandas 的.to_excel方法将整张工作表复制到新文件中,
# 并按.loc()方法的规定进行标记(包含原表所有行、列,并新增一列,
# 列名为“重复”,在该列中,将重复行标记 “是”
# index=false为不写入索引
#-------------------------------------------------------------------------------------------
'''代码2:标记不同表格的重复行'''
# 导入pandas库
import pandas as 数据分析包
from collections import defaultdict
#collections是python的标准库,是一个容器的集合。
#其中defaultdict:默认字典,用于解决使用字典时,如果key不存在,
# defaultdict容器会自动返回我们预先设置的默认值。
# 注意:defaultdict传入的默认值可以是一个数据类型也可以是一个方法。# 读取所有Excel文件的数据
数据字典 = defaultdict(list)
#defaultdict(list)构建一个默认值为list的字典
for 文件名 in [文件01, 文件02]:#用循环分别读取两个EXCEL文件数据文件 = 数据分析包.read_excel(文件名)#分别将两个文件作为元素写到“数据字典”中数据字典[文件名] = 数据文件# 找出所有表格中的重复行
重复行 = []
for 文件名, 数据文件 in 数据字典.items():#字典.items()方法是python字典的内建函数,会返回列表重复行.extend(数据文件[数据文件.duplicated(keep='first')])#extend() 函数用于在列表末尾一次性追加另一个序列中的多个值# 即:用新列表扩展原来的列表#以上语句的作用是:将有重复行的EXCEL表格直接追加到“重复行”#列表中# 对两个文件进行标记重复行
for 文件名, 数据文件 in 数据字典.items():# 字典.items()方法是python字典的内建函数,会返回列表# 上句的作用就是:# 用循环的方法分别从“数据字典”中读取两个EXCEL文件#并赋值给变量“文件名”和“数据文件”数据文件['重复'] = 数据分析包.Series('否', index=数据文件.index)#.Series方法由一组数据及与之相关的数据索引组成,# 即:一组带索引的数组# 如果不指明索引,series会默认使用从0开始的数据标签。#以上语句作用:在“数据文件”的末尾新增一列,列名为“重复”,#各行默认值为“否”(不重复)数据文件.loc[数据文件.duplicated(keep='first'), '重复'] = '是'#如果该行是重复行,则在“重复”列标记为“是”(重复)# 将标记后的数据保存到新的Excel文件中,名字后面添加 '_做了重复标记.xlsx数据文件.to_excel(文件名.split('.')[0] + '_做了重复标记.xlsx', index=False)'''
请注意,这些代码只能根据Excel表格中的内容进行比较,
不能通过文件名或绝对路径来确定是否是相同的文件。
因此,在使用这些代码时,请确保文件名唯一并且文件内容正确。
另外,请使用合适的Excel文件路径或相对路径更新代码。
'''

Python标识EXCEL文件中的重复行相关推荐

  1. 查找并删除EXCEL文件中的重复行(整行重复)

    ''' 用Python写代码:查找并删除EXCEL文件中的重复行(整行重复) --GhatGPT方案 ''' #-------------------------------------------- ...

  2. 如何去除 EXCEL 文件中的重复行

    在EXCEL数据文件中,如果按某几个列值比较,值都相等的几行称为重复行,那么怎么删除多余的重复行,只留下一行? 如果数据少,只有几十行数据,那么手工删除也是可以的.而如果数据量很大,手工处理就会是很麻 ...

  3. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...

  4. python打开excel的函数-Python读取excel文件中带公式的值的实现

    在进行excel文件读取的时候,我自己设置了部分直接从公式获取单元格的值 但是用之前的读取方法进行读取的时候,返回值为空 import os import xlrd from xlutils.copy ...

  5. 使用Python获取Excel文件中单元格公式的计算结果

    假设有如下Excel文件,其中第二个WorkSheet中数据如下: 其中D列为公式,现在要求输出该列公式计算的数值结果,代码如下: 代码运行结果: ----------相关阅读---------- 1 ...

  6. python打开excel数据库_使用python导入excel文件中的mssql数据库数据

    我试图用python导入excel文件中的mssql数据库数据.我的数据在excel表格中的顺序不正确.e. g它显示第1列数据,然后是第3列,第2列,然后是第4列,依此类推. 我使用以下脚本:imp ...

  7. Linux 指令:怎样从文件中找到重复行?

    Linux 指令:怎样从文件中找到重复行? 1.例如有文件test1.txt,内容如下: Hello world. 122 122 343434 222222 执行uniq -d 可以找到重复行: 1 ...

  8. Python读写Excel文件中指定区域单元格内容

    封面图片:<Python程序设计基础(第2版)>,ISBN:9787302490562,董付国,清华大学出版社 图书详情: 配套资源:用书教师可以免费获取教学大纲.教案.课件.源码.习题答 ...

  9. python读取excel文件代码封装_12行代码教会你用python读excel文件提取数据生成条形码...

    12 行代码教会你用 python 读 excel 文件,提取数据,生成 条形码 一.需求分析条形码应用广泛,尤其是人事.财务和库 管等等岗位,常需根据 excel 文件成批生成条码,如果是经 常性天 ...

最新文章

  1. 【直播】闫强:文本分类上分利器 -- Bert微调技巧大全
  2. 使用链路聚合进行负载分担
  3. java 两个数组去重复数据_Java实现数组去除重复数据的方法详解
  4. php fpm工作原理,什么是phpfpm的工作原理?
  5. aws lambda使用_如何使用AWS Lambda为发布/订阅消息选择最佳事件源
  6. pytorch学习笔记(5):vgg实现以及一些tricks
  7. ASP.NET2.0中的App_Data文件的作用
  8. mysql的半同步复制
  9. j2ee,ajax中文乱码解决方法。。
  10. 如何优雅地根治null值引起的Bug?!
  11. 基于fpga的dds函数信号发生器的设计_低频信号发生器
  12. Linux学习笔记08—如何关闭防火墙
  13. 企业全面运营管理沙盘模拟心得_企业经营沙盘模拟心得体会
  14. Spring Cloud 入门手册
  15. 新浪微博PC端登录分析
  16. win7+Ubuntu20.04双系统硬盘安装指南(含踩坑记录)
  17. 事业单位计算机类岗位考试试题,国家机关(事业单位)计算机岗位考试试题
  18. 抛弃Telemetry,用Faythe连接OpenStack和Prometheus
  19. Linux使用Shell定时清理日志文件
  20. 分布式服务器框架之Servers.Core库实现 DES对称加密算法;SHA1信息摘要算法;MD5信息摘要算法

热门文章

  1. 新手入门:认识wifi的无线信道
  2. 有关多重集合的排列和组合问题
  3. [附源码]JAVA+ssm计算机毕业设计办公用品管理系统(程序+Lw)
  4. c语言将英文逗号转成中文逗号,Word中怎样把文中的英文逗号改成中文逗号?
  5. 磁盘bitlocker上锁解决方法
  6. centOS宝塔面板安装
  7. 小白的装机之旅之采购篇
  8. Python编程判断年龄段
  9. WebRTC进阶-SDP协议详解
  10. linux系统如何进入pe,acer笔记本开机是linux系统,怎样进入pe