利用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入门教程之if语句的用法
May 14 Python
Python首次安装后运行报错(0xc000007b)的解决方法
Oct 18 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
Python之re操作方法(详解)
Jun 14 Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 Python
Django中的用户身份验证示例详解
Aug 07 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
Jun 22 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
django 将自带的数据库sqlite3改成mysql实例
Jul 09 Python
Django跨域请求原理及实现代码
Nov 14 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 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+mysql 采用ajax技术的 省 市 地 3级联动无刷新菜单 源码
2006/12/16 PHP
解析argc argv在php中的应用
2013/06/24 PHP
PHP类的反射用法实例
2014/11/03 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
php图片水印添加、压缩、剪切的封装类实现
2020/04/18 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
js同源策略详解
2015/05/21 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
浅谈Three.js截图并下载的大坑
2019/11/01 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
python中日期和时间格式化输出的方法小结
2015/03/19 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
python实现K最近邻算法
2018/01/29 Python
pycharm下查看python的变量类型和变量内容的方法
2018/06/26 Python
实例详解Matlab 与 Python 的区别
2019/04/26 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
CK澳大利亚官网:Calvin Klein澳大利亚
2020/12/12 全球购物
如何写出高性能的JSP和Servlet
2013/01/22 面试题
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
内衣营销方案
2014/03/15 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
节能环保演讲稿
2014/08/28 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
Innodb存储引擎中的后台线程详解
2022/04/03 MySQL
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS