利用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交换变量
Sep 06 Python
在Python的Django框架中调用方法和处理无效变量
Jul 15 Python
python基础之包的导入和__init__.py的介绍
Jan 08 Python
Python实现XML文件解析的示例代码
Feb 05 Python
tensorflow 使用flags定义命令行参数的方法
Apr 23 Python
python 处理数字,把大于上限的数字置零实现方法
Jan 28 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
提高python代码运行效率的一些建议
Sep 29 Python
python 统计list中各个元素出现的次数的几种方法
Feb 20 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获取类中常量,属性,及方法列表的方法
2009/04/09 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
PHP简洁函数小结
2011/08/12 PHP
CodeIgniter图像处理类的深入解析
2013/06/17 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
php输出形式实例整理
2020/05/05 PHP
五个jQuery图片画廊插件 推荐
2011/05/12 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
JavaScript包装对象使用详解
2015/07/09 Javascript
javascript的函数劫持浅析
2016/09/26 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
jquery请求servlet实现ajax异步请求的示例
2017/06/03 jQuery
js 图片转base64的方式(两种)
2018/04/24 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[00:44]华丽开场!DOTA2勇士令状带来全新对阵画面
2019/05/15 DOTA
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python issubclass 和 isinstance函数
2019/07/25 Python
Python生成器常见问题及解决方案
2020/03/21 Python
PyCharm vs VSCode,作为python开发者,你更倾向哪种IDE呢?
2020/08/17 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
写自荐信有哪些不宜?
2013/10/17 职场文书
大学自我鉴定范文
2013/12/26 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
php 获取音视频时长,PHP 利用getid3 获取音频文件时长等数据
2021/04/01 PHP
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
Golang生成Excel文档的方法步骤
2021/06/09 Golang