利用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 相关文章推荐
python使用cStringIO实现临时内存文件访问的方法
Mar 26 Python
简介Python的collections模块中defaultdict类型的用法
Jul 07 Python
Python+微信接口实现运维报警
Aug 27 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
简单了解Python中的几种函数
Nov 03 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
Python实现简单层次聚类算法以及可视化
Mar 18 Python
Python比较配置文件的方法实例详解
Jun 06 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
python下PyGame的下载与安装过程及遇到问题
Aug 04 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
matlab中二维插值函数interp2的使用详解
Apr 22 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单例模式实现方法分析
2015/03/14 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
Yii框架操作cookie与session的方法实例详解
2019/09/04 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
基于jquery的DIV随滚动条滚动而滚动的代码
2012/07/20 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
很棒的js选项卡切换效果
2016/07/15 Javascript
Bootstrap select实现下拉框多选效果
2016/12/23 Javascript
如何使用Bootstrap 按钮实例详解
2017/03/29 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
详解react阻止无效重渲染的多种方式
2018/12/11 Javascript
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
js实现类似iphone的网页滑屏解锁功能示例【附源码下载】
2019/06/10 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
Python Deque 模块使用详解
2014/07/04 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
Python做智能家居温湿度报警系统
2018/09/25 Python
如何将你的应用迁移到Python3的三个步骤
2019/12/22 Python
日本一家专门经营各种箱包的大型网站:Traveler Store
2016/08/03 全球购物
碧欧泉Biotherm加拿大官方网站:法国高端护肤品牌
2019/10/18 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
计算机专业应届毕业生自荐信
2013/09/26 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
公路绿化方案
2014/05/12 职场文书
供电工程专业求职信
2014/08/09 职场文书
办公室领导干部作风整顿个人整改措施
2014/09/17 职场文书
预备党员转正意见
2015/06/01 职场文书
甲午大海战观后感
2015/06/02 职场文书
《学会看病》教学反思
2016/02/17 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
PHP实现两种排课方式
2021/06/26 PHP
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js