利用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实现测试磁盘性能的方法
Mar 12 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
Python minidom模块用法示例【DOM写入和解析XML】
Mar 25 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
python函数的作用域及关键字详解
Aug 20 Python
Python线程障碍对象Barrier原理详解
Dec 02 Python
在python中利用try..except来代替if..else的用法
Dec 19 Python
基于python3生成标签云代码解析
Feb 18 Python
Django高并发负载均衡实现原理详解
Apr 04 Python
Python 判断时间是否在时间区间内的实例
May 16 Python
详细分析Python collections工具库
Jul 16 Python
Python进程池与进程锁之语法学习
Apr 11 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无限分类的深入理解
2013/06/02 PHP
PHP错误提示的关闭方法详解
2013/06/23 PHP
thinkphp3.0输出重复两次的解决方法
2014/12/19 PHP
ThinkPHP 整合Bootstrap Ajax分页样式
2016/12/23 PHP
详解PHP队列的实现
2019/03/14 PHP
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
常用的Javascript数据验证插件
2015/08/04 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
2017/09/21 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
layerui代码控制tab选项卡,添加,关闭的实例
2019/09/04 Javascript
js实现查询商品案例
2020/07/22 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
[06:53]2018DOTA2国际邀请赛寻真——勇于创新的Vici Gaming
2018/08/14 DOTA
go和python调用其它程序并得到程序输出
2014/02/10 Python
深度剖析使用python抓取网页正文的源码
2014/06/11 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
Python os.access()用法实例
2019/02/18 Python
python 初始化一个定长的数组实例
2019/12/02 Python
详解Python的三种拷贝方式
2020/02/11 Python
Python sys模块常用方法解析
2020/02/20 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
环保小标语
2014/06/13 职场文书
庆六一宣传标语
2014/10/08 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
Python中json.dumps()函数的使用解析
2021/05/17 Python
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技