使用python实现excel的Vlookup功能
作者:Bule飞鱼 发布时间:2023-05-01 20:15:15
标签:python,实现,excel,Vlookup
python 如何实现Excel 的Vlookup功能
1、Excel 中VLOOKUP具体步骤
Excel 中的VLOOKUP使用说明采用下面的小示例进行说明:
背景:目前有两个基础表,分别是 学号-姓名 关系表,学号-课程 关系表。
目的:最终生成 学号-姓名-课程 关系表。
vlookup语法:VLOOKUP(查找值,数据表,列序数,[匹配条件])
注意:vlookup属于要注意匹配的左右。比如用学号来匹配课程的话,查找值就是学号,数据表就是学生-课程表。列序数就是课程所在的第2列。匹配条件 一般是FALSE,即精确匹配。
需要注意的是:vlookup使用的是python中的left模式。
查找表没有对应学号的,匹不出相应的值,在基础表上就会显示 #N/A;
查找表有对应学号的,且有重复值时,在基础表上只会优先匹配第一个值(这部分在python中,将全部都匹配上重复的。)
2、Python中使用pandas包中的pd.merge()来实现
利用pd.merge()将DataFrame 和 Series进行匹配。
pd.merge(left, right, how = ‘inner', on = None, left_on = None, right_on = None,
left_index = False, right_index = False, sort = True, suffixes = (‘_x','_y'),
copy = True, indicator = False, validate = None)
参数说明:
参数 | 说明 |
left | 左表 |
right | 右表 |
how | 连接方式,inner、left、right、outer,默认为inner |
on | 用于连接的列名称 |
left_on | 左表用于连接的列名 |
right_on | 右表用于连接的列名 |
left_index | 是否使用左表的行索引作为连接键,默认False |
right_index | 是否使用右表的行索引作为连接键,默认False |
sort | 默认为False,将合并的数据进行排序 |
copy | 默认为True,总是将数据复制到数据结构中,设置为False可以提高性能 |
suffixes | 存在相同列名时在列名后面添加的后缀,默认为(’_x’, ‘_y’) |
indicator | 显示合并数据中数据来自哪个表 |
注意事项:
当两个表用于连接的列名相同时,只需用on 来连接 ;
当两个表用于连接的列名不同时,则需要使用left_on和right_on分别连接。
如果是两个DataFrame 进行匹配时,则匹配后会将DataFrame中所有的列都添加进去。
vlookup中的匹配连接方式属于how=left。
重复行会全部匹配。
下面是两个表:
为方便大家理解,下面是python 中不同匹配方式的结果:
示例示例
上述语法也可以使用下面的方式:
来源:https://blog.csdn.net/katherine717/article/details/125278247
0
投稿
猜你喜欢
- 无限循环如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:#!/usr/bin/python# -*- coding: U
- 提示框提示框的基本使用方式为:<span data-toggle="tooltip" data-original-
- 本文实例讲述了Python实现简单生成验证码功能。分享给大家供大家参考,具体如下:验证码一般用来验证登陆、交易等行为,减少对端为机器操作的概
- python和C/C++混合编程,推荐使用python的内置模块ctypes,从名字上可以看出是c,可见对C++的支持并不太好。一般的步骤:
- 假设有一个表,结构如下:mysql> CREATE TABLE `a` ( `id
- 为什么使用Python假设我们有这么一项任务:简单测试局域网中的电脑是否连通.这些电脑的ip范围从192.168.0.101到192.168
- 实际需求中,需要对某张表某字段里面的内容进行批量替换,普通的思考流程如下:SELECT出来str_replace替换UPDATE写入实际这样
- vbscript中,错误处理使用on error resume next来完成,如果在你的代码里加入这一句,在这句之后的其他代码如果出现错误
- python共有两种浅拷贝的方法,一个是python的内置函数copy(),另一个是copy模块中的copy.copy()。python的六
- EMS-员工信息管理系统MySQL学习之基础操作总结MySQL学习之基础命令实操总结创建ems库show databases;
- Pygame的Draw绘图Pygame 中提供了一个draw模块用来绘制一些简单的图形状,比如矩形、多边形、圆形、直线、弧线等。pygame
- 突然有个想法,不知道是不是首创:用"表情符号"做植入广告. 目前的表情符号 "黄色小圆脸"系列可以说
- 一, 当新增节点后刷新当前节点node.loaded = false;node.expand(); //新建子节点是刷新一次本节点的展开请求
- 一:原理: 先看一下点击事件的执行顺序: 单击(click):mousedown,mouseout,click; 双击(dblclick):
- IE下window.lcoation可以被重写而不重新定向,具体方法是: var location = {},然后就可以重写具体的属性了,这
- Python3 解释器Linux/Unix的系统上,一般默认的 python 版本为 2.x,我们可以将 python3.x 安装在 /us
- 一、前言在Python提供了re模块,用于实现正则表达式的操作。在实现时,可以使用re模块提供的方法(如,search()、match()、
- 本文实例讲述了PHP封装cURL工具类。分享给大家供大家参考,具体如下:CurlUtils工具类:<?php/** * cURL请求工
- 内容摘要:在像网站首页这样的资源比较集中的页面中,那些栏目最经常被用户点击?居左居右对广告的点击率的影响是什么?“一切用数字说话”:以上问题
- 前言使用 pymongo 进行 group by 操作有两种基本方式,他们都是 mongodb 的原生命令,于 Collection 对象上