利用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类的基础入门知识
Nov 24 Python
Python实现多行注释的另类方法
Aug 22 Python
Python输出带颜色的字符串实例
Oct 10 Python
python的numpy模块安装不成功简单解决方法总结
Dec 23 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
Nov 29 Python
解析Python的缩进规则的使用
Jan 16 Python
python处理DICOM并计算三维模型体积
Feb 26 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
python烟花效果的代码实例
Feb 25 Python
python实现简单坦克大战
Mar 27 Python
python3 kubernetes api的使用示例
Jan 12 Python
pandas求平均数和中位数的方法实例
Aug 04 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实现aes加密类分享
2014/02/16 PHP
php防止表单重复提交实例讲解
2019/02/11 PHP
Yii2框架中一些折磨人的坑
2019/12/15 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
jQuery拖动div、移动div、弹出层实现原理及示例
2014/04/08 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
2015/08/08 Javascript
javascript实现Email邮件显示与删除功能
2015/11/21 Javascript
javascript Promise简单学习使用方法小结
2016/05/17 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
JS 实现可停顿的垂直滚动实例代码
2016/11/23 Javascript
js中字符型和数值型数字的互相转化方法(必看)
2017/04/25 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
Angularjs的键盘事件的绑定
2017/07/27 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
webpack写jquery插件的环境配置
2017/12/21 jQuery
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
Angular angular-file-upload文件上传的示例代码
2018/08/23 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
微信小程序设置全局请求URL及封装wx.request请求操作示例
2019/04/02 Javascript
如何实现vue的tree组件
2020/12/03 Vue.js
linux环境下安装pyramid和新建项目的步骤
2013/11/27 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
tensorflow通过模型文件,使用tensorboard查看其模型图Graph方式
2020/01/23 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
pygame实现飞机大战
2020/03/11 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
广州足迹信息技术有限公司Java软件工程师试题
2014/02/15 面试题
财政局长自荐信范文
2013/12/22 职场文书
社区义诊活动总结
2014/04/30 职场文书
爱祖国演讲稿
2014/05/04 职场文书
2014年销售工作总结
2014/12/01 职场文书
java项目构建Gradle的使用教程
2022/03/24 Java/Android
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers