利用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封装shell命令实例分析
May 05 Python
在Python中操作字典之setdefault()方法的使用
May 21 Python
Python文件右键找不到IDLE打开项解决办法
Jun 08 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
Windows下python3.6.4安装教程
Jul 31 Python
对python 匹配字符串开头和结尾的方法详解
Oct 27 Python
Python实现点阵字体读取与转换的方法
Jan 29 Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 Python
wxpython绘制音频效果
Nov 18 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
Jan 16 Python
Tensorflow轻松实现XOR运算的方式
Feb 03 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制作的意见反馈表源码
2007/03/11 PHP
php 模拟post_验证页面的返回状态(实例讲解)
2013/10/28 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
php实现按天数、星期、月份查询的搜索框
2016/05/02 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
2017年最新PHP经典面试题目汇总(上篇)
2017/03/17 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
PHP实时统计中文字数和区别
2019/02/28 PHP
jQuery图片预加载 等比缩放实现代码
2011/10/04 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
js实现选中页面文字将其分享到新浪微博
2015/11/05 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
jquery中关于bind()方法的使用技巧分享
2017/03/30 jQuery
详解如何在vue中使用sass
2017/06/21 Javascript
详解从0开始搭建微信小程序(前后端)的全过程
2019/04/15 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
python 生成不重复的随机数的代码
2011/05/15 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
2019/07/22 Python
法国家具及室内配件店:home24
2017/01/21 全球购物
TripAdvisor瑞典:全球领先的旅游网站
2017/12/11 全球购物
人事科岗位职责范本
2014/03/02 职场文书
2014全国两会学习心得体会2000字
2014/03/10 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
暂停营业通知
2015/04/25 职场文书
大学推普周活动总结
2015/05/07 职场文书
小学六一主持词开场白
2015/05/28 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android