利用Python实现Excel的文件间的数据匹配功能


Posted in Python onJune 16, 2020

我们知道Excel有一个match函数,可以做数据匹配。
比如要根据人名获取成绩

利用Python实现Excel的文件间的数据匹配功能

而参考表sheet1的内容如下:

利用Python实现Excel的文件间的数据匹配功能

要根据sheet1匹配每人的成绩,用Excel是这么写

index(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0))

意思就是获取sheet1的B列的内容,根据我的A列匹配sheet1的A列的内容

但是如何用python实现这一点呢,我写了一个函数,非常好用,分享给大家。
这个函数考虑到了匹配多个字段,多个sheet。

import pandas as pd
def match(file,sheetnames,reffile,refsheet,targetsegs,matchseg)  #文件名 sheet列表 参考文件名 参考sheet 目标字段列表 参考字段
	alldata=pd.read_excel(file,None)
	refdata=pd.read_excel(reffile,refsheet)
	#获取映射字典
	maps={}
	for i in refdata.index:
		MatchSeg=refdata.loc[i,matchseg]
		maps[MatchSeg]={}
		for seg in targetsegs:
			maps[MatchSeg][seg]=refdata.loc[i,seg]
	#匹配数据
	for sheet in sheetnames:
		if(isinstance(sheet,int)):
			sheet=list(alldata.keys())[sheet]

		data=alldata[sheet].fillna('-')
		for i in data.index:
			MatchSeg=data.loc[i,matchseg]
			for seg in targetsegs:
				try:
					data.loc[i,seg]=map[MatchSeg][seg]
				except Exception as e:
					pass

		alldata[sheet]=data
	#导出
	with pd.ExcelWriter(file) as writer:
		for sheet in alldata.keys():
			alldata[sheet].to_excel(writer,sheet,index=False)
			
match('要匹配的表.xlsx',[0,1],'参考表.xlsx','参考页',['要匹配的字段1,字段2'],'参考字段')

总结

到此这篇关于利用Python实现Excel的文件间的数据匹配功能的文章就介绍到这了,更多相关Python实现Excel的文件间的数据匹配内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Linux下使用python自动修改本机网关代码分享
May 21 Python
python提取页面内url列表的方法
May 25 Python
Python的Flask站点中集成xhEditor文本编辑器的教程
Jun 13 Python
Python 专题四 文件基础知识
Mar 20 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Python爬取数据保存为Json格式的代码示例
Apr 09 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
python利用re,bs4,requests模块获取股票数据
Jul 29 Python
Python的条件锁与事件共享详解
Sep 12 Python
Python中的None与 NULL(即空字符)的区别详解
Sep 24 Python
Django用户认证系统如何实现自定义
Nov 12 Python
Pytorch 使用CNN图像分类的实现
Jun 16 #Python
利用python中的matplotlib打印混淆矩阵实例
Jun 16 #Python
Python SMTP配置参数并发送邮件
Jun 16 #Python
基于matplotlib中ion()和ioff()的使用详解
Jun 16 #Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 #Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 #Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 #Python
You might like
php array_map()数组函数使用说明
2011/07/12 PHP
php的socket编程详解
2016/11/20 PHP
php打开本地exe程序,js打开本地exe应用程序,并传递相关参数方法
2018/02/06 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
2020/04/26 PHP
jquery制作搜狐快站页面效果示例分享
2014/02/21 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
jquery编写Tab选项卡滚动导航切换特效
2020/07/17 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
探索webpack模块及webpack3新特性
2017/09/18 Javascript
使用JS实现导航切换时高亮显示的示例讲解
2018/08/22 Javascript
纯异步nodejs文件夹(目录)复制功能
2019/09/03 NodeJs
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
[45:50]完美世界DOTA2联赛PWL S3 CPG vs Forest 第二场 12.16
2020/12/17 DOTA
python+django加载静态网页模板解析
2017/12/12 Python
python获取命令行输入参数列表的实例代码
2018/06/23 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
详解python 爬取12306验证码
2019/05/10 Python
Python数据持久化存储实现方法分析
2019/12/21 Python
Python 通过正则表达式快速获取电影的下载地址
2020/08/17 Python
基于zepto的插件之移动端无缝向上滚动并上下触摸滑动实例代码
2016/12/20 HTML / CSS
美国第一香水网站:Perfume.com
2017/01/23 全球购物
教师实习自我鉴定
2013/12/18 职场文书
经理秘书找工作求职信
2013/12/19 职场文书
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
交通安全责任书范本
2014/07/24 职场文书
2014年民政工作总结
2014/11/26 职场文书
2015年全国保险公众宣传日活动方案
2015/05/06 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS
redis protocol通信协议及使用详解
2022/07/15 Redis