利用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中给List添加元素的4种方法分享
Nov 28 Python
Python中exit、return、sys.exit()等使用实例和区别
May 28 Python
python集合用法实例分析
May 30 Python
python中子类继承父类的__init__方法实例
Dec 15 Python
python清除函数占用的内存方法
Jun 25 Python
Python面向对象类的继承实例详解
Jun 27 Python
Flask之flask-script模块使用
Jul 26 Python
推荐10款最受Python开发者欢迎的Python IDE
Sep 16 Python
Python实现html转换为pdf报告(生成pdf报告)功能示例
May 04 Python
pytorch载入预训练模型后,实现训练指定层
Jan 06 Python
如何将json数据转换为python数据
Sep 04 Python
pytest实现多进程与多线程运行超好用的插件
Jul 15 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代码
2006/12/06 PHP
一步一步学习PHP(4) php 函数 补充2
2010/02/15 PHP
解析php5配置使用pdo
2013/07/03 PHP
php中mail函数发送邮件失败的解决方法
2014/12/24 PHP
php中smarty变量修饰用法实例分析
2015/06/11 PHP
PHP递归的三种常用方式
2019/02/28 PHP
PHP 裁剪图片
2021/03/09 PHP
JS实现可改变列宽的table实例
2013/07/02 Javascript
JS保留两位小数,多位小数的示例代码
2014/01/07 Javascript
jquery增加和删除元素的方法
2015/01/14 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
详解JavaScript的Polymer框架中的通知交互
2015/07/29 Javascript
javascript创建cookie、读取cookie
2016/03/31 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
jQuery弹出下拉列表插件(实现kindeditor的@功能)
2016/08/16 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
vue-model实现简易计算器
2020/08/17 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
关于javascript中的promise的用法和注意事项(推荐)
2021/01/15 Javascript
python3 mmh3安装及使用方法
2019/10/09 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
Python读取JSON数据操作实例解析
2020/05/18 Python
python xlsxwriter模块的使用
2020/12/24 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
HTML5 Blob对象的具体使用
2020/05/22 HTML / CSS
英格兰足协官方商店:England Store
2019/07/12 全球购物
教师师德反思材料
2014/02/15 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
保密工作整改情况汇报
2014/11/06 职场文书