利用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使用defaultdict读取文件各列的方法
May 11 Python
简单实现python聊天程序
Apr 01 Python
Django框架实现逆向解析url的方法
Jul 04 Python
解决Pycharm运行时找不到文件的问题
Oct 29 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
解决jupyter notebook 出现In[*]的问题
Apr 13 Python
python上selenium的弹框操作实现
Jul 13 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
详解Python中string模块除去Str还剩下什么
Nov 30 Python
django使用多个数据库的方法实例
Mar 04 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
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
实用函数2
2007/11/08 PHP
配置php网页显示各种语法错误
2013/09/23 PHP
PHPMailer发送HTML内容、带附件的邮件实例
2014/07/01 PHP
php判断linux下程序问题实例
2015/07/09 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
PHP中overload与override的区别
2017/02/13 PHP
PHP 文件上传限制问题
2019/09/01 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
ie 调试javascript的工具
2009/04/29 Javascript
javascript 拖放效果实现代码
2010/01/22 Javascript
javascript中的self和this用法小结
2014/02/08 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
Javascript获取表单名称(name)的方法
2015/04/02 Javascript
微信小程序实现电影App导航和轮播
2020/11/30 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python出现segfault错误解决方法
2016/04/16 Python
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
Flask框架模板继承实现方法分析
2019/07/31 Python
Python生成验证码、计算具体日期是一年中的第几天实例代码详解
2019/10/16 Python
Python selenium如何打包静态网页并下载
2020/08/12 Python
HTML5+JS实现俄罗斯方块原理及具体步骤
2013/11/29 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
美国顶级奢侈茶:Mighty Leaf Tea(美泰茶)
2016/11/26 全球购物
Interrail法国:乘火车探索欧洲,最受欢迎的欧洲铁路通票
2019/08/27 全球购物
教师党员先进性教育自我剖析材料思想汇报
2014/09/24 职场文书
个人三严三实对照检查材料
2014/09/25 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
综合测评自我评价
2015/03/06 职场文书
2019年让高校“心动”的自荐信
2019/03/25 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫
拙作再改《我的收音机情缘》
2022/04/05 无线电
MySQL运行报错:“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
2022/06/14 MySQL