利用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实现360的字符显示界面
Feb 21 Python
Python解析网页源代码中的115网盘链接实例
Sep 30 Python
详解Python的Django框架中的模版继承
Jul 16 Python
浅谈Python数据类型之间的转换
Jun 08 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
python实现随机漫步方法和原理
Jun 10 Python
详解python中*号的用法
Oct 21 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
django实现日志按日期分割
May 21 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
FCKeditor添加自定义按钮
2008/03/27 PHP
Linux下从零开始安装配置Nginx服务器+PHP开发环境
2015/12/21 PHP
thinkphp分页实现效果
2016/10/13 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
Javascript的IE和Firefox兼容性汇编
2006/07/01 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
2017/04/21 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
node.js基础知识小结
2018/02/26 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
微信小程序实现获取准确的腾讯定位地址功能示例
2019/03/27 Javascript
微信小程序封装的HTTP请求示例【附升级版】
2019/05/11 Javascript
Angular如何由模板生成DOM树的方法
2019/12/23 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
Python 连连看连接算法
2008/11/22 Python
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
Python基础教程之内置函数locals()和globals()用法分析
2018/03/16 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
Django 响应数据response的返回源码详解
2019/08/06 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
Python‘==‘ 及 ‘is‘相关原理解析
2020/09/05 Python
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
科颜氏英国官网:Kiehl’s英国
2019/11/20 全球购物
幼儿教师研修感言
2014/02/12 职场文书
2014年合同管理工作总结
2014/12/02 职场文书
2015年实习单位评语
2015/03/25 职场文书
vue完美实现el-table列宽自适应
2021/05/08 Vue.js
mysql事务对效率的影响分析总结
2021/10/24 MySQL
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL
Redis唯一ID生成器的实现
2022/07/07 Redis
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL