使用python对文件夹里的所有表格合并且去重_python 对表格 去重合并-程序员宅基地

技术标签: 表格处理  python  后端  开发语言  

有的时候,我们需要将多张表格合并并去重
假如,我们需要将存放在E盘中table文件夹里的三张表格table01.xlsx,table02.xlsx,table03.xlsx合并并去重到文件merge_table.xlsx中
table01:
table01
table02:
table02
table03:
table03
整体思路:
遍历文件夹里excel文件——将读取后的文件数据加入到列表中——使用pd.concat()方法将列表加入其中合并所有数据——使用data.drop_duplicates()对合并后的数据去重——建立新的excel文件——将去重后的数据转化为dataframe格式后储存到excel文件中——保存文件
代码如下:

import pandas as pd
import os
os.chdir('E:\\origin_file\\table')
list=[]   #建立新列表
#1.遍历目标文件夹
for root,dirs,files in os.walk('./'):
	for file in files:
#2.读取excel文件
        data=pd.read_excel(file)
#3.将excel文件加入到新建列表中
        list.append(data)
#4.合并
merge_data=pd.concat(list,axis=0)
#pd.concat()第一个参数为连接对象,格式为列表,axis=0为连接方向,这里等于0表示水平方向连接(默认也是0),等于1表示垂直方向
#更多参数可查看博文https://blog.csdn.net/smf1208/article/details/110726271
#5.去重
merge_quchong=merge_data.drop_duplicates(subset=['filename'],keep='first',inplace=False)
#data.drop_duplicates的参数subset=['filename']表示需要去重的列名,这里是需要去重“filename”字段;keep='first'表示保留第几次出现的重复行,删除后面的重复行,这里是保留第一次出现的行(默认也是‘first’);inplace=False表示是否删除所有重复项,这里表示是(默认也是'False')
#详细内容可查看https://zhuanlan.zhihu.com/p/116884554
#6.转化为dataframe格式
df=pd.DataFrame(merge_quchong)
#7.建立excel文件
writer=pd.ExcelWriter('./merge_table.xlsx')
#8.储存到excel文件
df.to_excel(writer,'sheet1',startcol=0,index=False)
#9.保存文件
writer.save()

merge_table:
在这里插入图片描述知识点:
1.遍历文件夹
2.合并
3.去重
4.保存
创作不易,请大家多多点赞,收藏,关注,支持一下!陆续博主将有更多详细实用的教程推出!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_47970003/article/details/121792711

智能推荐

kettle 共享数据库连接时带汉字引发的错误-程序员宅基地

文章浏览阅读548次。处理方式:在目录: C:\Users\Administrator\.kettle 里 找到:shared.xml 把该文件的编码方式改为UTF-8,重启kettle就没问题了

weka up-sampling & down-sampling-程序员宅基地

文章浏览阅读532次。[b]up-sampling:[/b]SMOTE algorithm,over-sampled by creating ``synthetic'' examples rather than by over-sampling with replacement.[b]Weka supervised SMOTE filter [/b]两个参数: [list][*]neares..._weka oversampled

php中如何得到js中的变量,javascript-js变量在PHP中怎么获取该变量?-程序员宅基地

文章浏览阅读1.3k次。在js中定义一个变量,在PHP中怎么获取该变量?(在一个页面)回复内容:在js中定义一个变量,在PHP中怎么获取该变量?(在一个页面)JS是前端,PHP是后端,后端PHP要获取前端JS的变量,那前端JS可以通过AJAX传输数据给后端PHP.比如登录页面login.php:js中通过post提交到后台:var data = {'param' : xxx};$.post(url,data,callba..._php 获取js中变量

2.计算机组成原理_程序计数器由时序部件组成吗-程序员宅基地

文章浏览阅读1.7k次。运算器:算术运算、逻辑运算。存储器:存放程序和数据。控制器:指挥程序运行。输入设备:将信息转换成计算机能识别的形式。输出设备:将结果转换成人们熟悉的形式。_程序计数器由时序部件组成吗

毕设分享 单片机非接触式红外感应体温计_单片机测温模块测量体温算法-程序员宅基地

文章浏览阅读80次。非接触式电子体温计主要利用红外测温原理,一切温度高于绝对零度(-273.35℃)的物体,由于分子热运动,物体会不停地向外辐射能量。物体辐射能量的大小与它的表面温度有十分密切的关系。因此,通过测量物体辐射的能量,就能够测量出物体的温度。本用户手册中的非接触式电子体温计就是利用这种测量方法,实现测量人体体温的功能。_单片机测温模块测量体温算法

uniapp使用技巧_uniapp then-程序员宅基地

文章浏览阅读2.3k次。生命周期函数执行顺序进入某一个页面onLoad:页面加载onShow:页面显示onReady:页面渲染由该页面跳转进入下一页面onHide:隐藏页面onLoad:加载页面onShow:显示页面onReady:渲染页面下一页面返回该页面onUnload:卸载页面onShow:显示页面知识点模板语法:v-bind–: v-on–@数据绑定条件判断:v-if v-if-else v-else列表渲染基础组件的使用自定义组件的使用基础api的用法条件编译页面_uniapp then

随便推点

干货福利:CVPR2016代码合集_yeonwoonya-程序员宅基地

文章浏览阅读4.3k次。DoReFa-Net: Training Low Bitwidth Convolutional Neural Networks with Low Bitwidth Gradients:https://github.com/ppwwyyxx/tensorpack/tree/master/examples/DoReFa-NetCode for Stacked attention network_yeonwoonya

深度优先搜索(DFS)和广度优先搜索(BFS)_深度优先搜索是基于中序遍历吗-程序员宅基地

文章浏览阅读537次。深度优先搜索和广度优先搜索,都是图形搜索算法。一、深度优先搜索(DFS) 深度优先搜素,是针对图和树的遍历算法,利用深度优先搜索算法可以产生目标图的相应拓扑排序表,利用拓扑排序表可以方便的解决很多相关的图论问题,如最大路径问题等等。 一般会使用栈数据结构来辅助实现DFS算法。 DFS主要思路就是从图中一个未访问的顶点V开始,沿着一条路一直往下走到底,然后从这条路尽头的结点回退到上一个节点,再从另一条路开始走到底.....,不断递归重复..._深度优先搜索是基于中序遍历吗

编译OpenWRT LEDE 固件的一些说明_generic-squashfs-combined-程序员宅基地

文章浏览阅读1.6w次,点赞4次,收藏22次。Github Actions 云编译 OpenWRT LEDE 固件固件文件说明文件共提供多种类型供下载(根据编译时选择的Target Images配置),需要其他类型的请自行转换,下面是部分说明序号名称说明(1)openwrt-x86-64-generic-squashfs-combined.img 或.gz带引导分区文件,也就是刷完后可以直接启动无需做设置,推荐使用!(2)openwrt-x86-64-generic-squashfs-combined.vmdk_generic-squashfs-combined

NOI Online Round 3 PJ 游记_noi online游记3-程序员宅基地

文章浏览阅读257次。博客园同步Day rand()\text{Day rand()}Day rand()报上了名。Day 0\text{Day 0}Day 0期中考试考萎了,彻底萎了,心里什么也不想了。试机?试个啥机?Day 1\text{Day 1}Day 1下午老妈说作业太多,于是我 16:4716:4716:47 匆匆开启了电脑。测试冥间数据,发现 tg180\text{tg} 180tg180 还可以,不错!17:0017:0017:00 开_noi online游记3

连接MYSQL报错 java.math.BigInteger cannot be cast to java.lang.Long_java.math.biginteger cannot becast to java.lang.l-程序员宅基地

文章浏览阅读224次。连接MYSQL报错 java.math.BigInteger cannot be cast to java.lang.LongMYSQL版本8.0 jar包5.1 换同版本jar包即可你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。下载地址:(你也可以在这个网站下载其..._java.math.biginteger cannot becast to java.lang.long

Go string转Map 和 Map嵌套取值 和 interface转string_go 字符串转map失败-程序员宅基地

文章浏览阅读3.4k次。Go字符串转Map 和 Map的嵌套取值想用Go写爬虫联系一下语法的,结果数据类型转换还不熟悉。map嵌套取值就会报错type interface {} does not support indexing字符串转Map// 示例字符串resString := `{ "args": {}, "headers": { "Accept-Encoding": "gzip", "Host": "httpbin.org", "User-Agent": "GRequests/0.10_go 字符串转map失败

推荐文章

热门文章

相关标签