当前位置: 首页 > news >正文

Python学习笔记_读Excel去重

读取一个Excel文件,按照某列关键字,如果有重复则去掉

这里不介绍所有的解决办法,只是列出一个办法。

软件环境:

      OS:Win10 64位

      Python 3.7

     测试路径:D:\Work\Python

     测试的Excel文件:Test1.xlsx

   

参考代码:

#! -*- coding utf-8 -*-
#! @Time  :2019/3/03 
#! Author :Frank Zhang
#! @File  :ExcelProcess.py
#! Python Version 3.7

import xlrd
import xlwt

def main():
    workbook = xlrd.open_workbook(r'D:\work\Python\Test1.xlsx')
    sheet1 = workbook.sheet_by_name('Sheet1')

    rows = sheet1.row_values(0) # 获取第一行内容
    cols = sheet1.col_values(0)  #获取第1列的内容
    max_row=len(cols)
    max_column=len(rows)
    
    #第一列关键字,如果重复则去掉
    old_List=sheet1.col_values(0)
    last_List=[]

    wb = xlwt.Workbook()
    sheet2 = wb.add_sheet(u'Sheet1')

    iRow=-1
    for i in range(max_row):
        for j in range(max_column):
            if j==0:
                if old_List[i] in last_List:                        #如果已有,则退出for循环,不增加重复数据
                    break                                   
                else:
                    iRow=iRow+1
                    last_List.append(old_List[i])                   #没有,则把关键字添加到列表中
                    sheet2.write(iRow,j,sheet1.cell(i,j).value)
            else:
                 sheet2.write(iRow,j,sheet1.cell(i,j).value)
             
    wb.save("Test2.xls")
    print("Process is over.")
    
if __name__=="__main__":
    main()

 

转载于:https://www.cnblogs.com/SH170706/p/10466228.html

相关文章:

  • [LOJ161] 仙人掌计数
  • 打造性感好用的 VS Code 编辑器
  • 性能测试性能分析
  • JAVA 集合(个人总结)
  • 华为云:实现高可用的负载均衡web集群
  • 又火了,小米MIX 3在堪称设计界的奥斯卡荣获2019德国iF设计奖
  • 排序(1):冒泡排序
  • Spring boot (四) 配置文件讲解
  • Mac 上flink的安装与启动
  • 17LaTeX学习系列之---LaTeX的版面设计
  • 企业分布式微服务云SpringCloud SpringBoot mybatis (八)消息总线(Spring Cloud Bus)
  • 将博客搬至CSDN
  • reduce/reduceRight
  • 刚进入编程学习的小菜鸟
  • ES6 module(模块化)
  • hexo+github搭建个人博客
  • angular2开源库收集
  • canvas绘制圆角头像
  • extract-text-webpack-plugin用法
  • JAVA并发编程--1.基础概念
  • Spring Boot快速入门(一):Hello Spring Boot
  • WePY 在小程序性能调优上做出的探究
  • 复习Javascript专题(四):js中的深浅拷贝
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 用Visual Studio开发以太坊智能合约
  • 掌握面试——弹出框的实现(一道题中包含布局/js设计模式)
  • 找一份好的前端工作,起点很重要
  • 正则学习笔记
  • 东超科技获得千万级Pre-A轮融资,投资方为中科创星 ...
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • ​人工智能书单(数学基础篇)
  • #QT(TCP网络编程-服务端)
  • #QT(智能家居界面-界面切换)
  • %check_box% in rails :coditions={:has_many , :through}
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (九十四)函数和二维数组
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (转) 深度模型优化性能 调参
  • (转)ObjectiveC 深浅拷贝学习
  • .net core Swagger 过滤部分Api
  • .NET Micro Framework初体验(二)
  • .net refrector
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .net wcf memory gates checking failed
  • .net访问oracle数据库性能问题
  • .NET企业级应用架构设计系列之技术选型
  • .NET值类型变量“活”在哪?
  • ??eclipse的安装配置问题!??
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [\u4e00-\u9fa5] //匹配中文字符
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [BJDCTF 2020]easy_md5
  • [CISCN2019 华北赛区 Day1 Web2]ikun