利用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微信库:itchat的用法详解
Aug 14 Python
Python 多进程和数据传递的理解
Oct 09 Python
matplotlib设置legend图例代码示例
Dec 19 Python
Python装饰器原理与简单用法实例分析
Apr 29 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
python 执行shell命令并将结果保存的实例
May 11 Python
Python实现iOS自动化打包详解步骤
Oct 03 Python
TensorFlow车牌识别完整版代码(含车牌数据集)
Aug 05 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
Python 爬虫的原理
Jul 30 Python
python如何将图片转换素描画
Sep 08 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 file_get_contents抓取Gzip网页乱码的三种解决方法
2013/11/12 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
js href的用法
2010/05/13 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
eval的两组性能测试数据
2012/08/17 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
js预加载图片方法汇总
2015/06/15 Javascript
初识Javascript小结
2015/07/16 Javascript
Express的路由详解
2015/12/10 Javascript
Node.js实现数据推送
2016/04/14 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
js console.log打印对象时属性缺失的解决方法
2019/05/23 Javascript
js new Date()实例测试
2019/10/31 Javascript
JS实现烟花爆炸效果
2020/03/10 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
vue.js实现h5机器人聊天(测试版)
2020/07/16 Javascript
Python中的choice()方法使用详解
2015/05/15 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
Python决策树分类算法学习
2017/12/22 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
Python常见的pandas用法demo示例
2019/03/16 Python
selenium 安装与chromedriver安装的方法步骤
2019/06/12 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
Microsoft Advertising美国:微软搜索广告
2019/05/01 全球购物
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
装潢设计实习自我鉴定
2013/09/19 职场文书
知识竞赛主持词
2014/03/26 职场文书
小学生家长寄语
2014/04/02 职场文书
群众路线个人对照检查材料2014
2014/09/26 职场文书
单位政审意见范文
2015/06/04 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
2015年暑期社会实践报告
2015/07/13 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA
python对文档中元素删除,替换操作
2022/04/02 Python