0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎么可以实现Excel中的“Vlookup”函数?

电子工程师 来源:快学Python 作者:朱小五 2022-08-05 11:01 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

VLOOKUP函数大家应该都很熟悉吧,它可以帮我们根据指定的条件快速查找匹配出相应的结果,通常被用于核对、匹配多个表格之间的数据。与数据透视表,并称为数据er最常用的两大Excel功能。

6b24982e-146a-11ed-ba43-dac502259ad0.png

那我们今天就聊聊,如何Python写Excel中的“Vlookup”函数?

Excel

如图所示,在“测试工资数据.xlsx”表格文件中有两个sheet,其中sheet1是我们的数据源区域,而sheet2存储的是待查找的员工姓名和工资。

6b38dd0c-146a-11ed-ba43-dac502259ad0.png

在sheet2中,一列是员工姓名,一列是他们的对应工资。

6b5a78ea-146a-11ed-ba43-dac502259ad0.png

vlookup函数就是在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。语法格式如下所示:

VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup])

一般是匹配条件容易记混,如果为FALSE或0,则返回精确匹配,如果找不到,则返回错误值 #N/A。如果 range_lookup 为TRUE或1,函数 VLOOKUP 将查找近似匹配值。

openpyxl

在Python中利用openpyxl库,就可以完成公式的填充。因此在使用openpyxl之前,需要安装好这个库。

pipinstallopenpyxl

在openpyxl中,读取已有的Excel文件,使用到的是load_workbook类,因此需要提前导入这个类。接着,实例化load_workbook("测试工资数据.xlsx")对象,得到一个工作簿对象。

然后,使用workbook["Sheet2"]激活该工作簿中的Sheet2表,表示我们要针对这个表进行操作。完成上述操作后,下面就可以进行vlookup公式的填写了。

fromopenpyxlimportload_workbook

workbook=load_workbook("测试工资数据.xlsx")
sheet=workbook["Sheet2"]

sheet["B1"]="基本工资(Python)"
foriinrange(2,sheet.max_row+1):
sheet[f"B{i}"]=f'=VLOOKUP(A{i},Sheet1!A:B,2,FALSE)'
workbook.save(filename="vlookup.xlsx")

首先,我们利用sheet["B1"] = "基本工资(Python)"修改B1单元格位置的表头。然后通过for循环语句,循环第2行到最后一行,针对每一个B列单元格,我们都写入上述vlookup公式。

最后记得保存一下即可。

不过需要注意,Python操作Excel的优势在于处理大数据、或者重复性工作。在本次案例中,使用openpyxl库向Excel中写入Vlookup函数多少有点大材小用了。

经过openpyxl一番操作,如同庄周带净化。

Pandas

在这数据爆炸的时代,我们无时无刻不在和数据打交道。面对杂乱无章的数据Pandas 模块应运而生了,它提供了数据导入、数据清洗、数据处理、数据导出等一套流程方法,可以很方便地帮助我们自动整理数据[2]

那么Excel中的这种常用函数,Pandas模块自然也是可以轻松搞定了。

在 Pandas 模块中,调用merge()方法,可以帮助我们实现数据连接。

在交互式环境中输入如下命令:

importpandasaspd
path="测试工资数据.xlsx"
df_1=pd.read_excel(path,sheet_name='Sheet1')
df_2=pd.read_excel(path,sheet_name='Sheet2')

pd.merge(df_2["姓名"],df_1[["姓名","基本工资"]],how="left",on="姓名")
这样我们就用Python(openpyxl + Pandas)实现了Excel中的“Vlookup”函数。

										

审核编辑 :李倩


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 函数
    +关注

    关注

    3

    文章

    4406

    浏览量

    66839
  • python
    +关注

    关注

    57

    文章

    4858

    浏览量

    89586

原文标题:Python 也可以实现 Excel 中的 “Vlookup” 函数?

文章出处:【微信号:AI科技大本营,微信公众号:AI科技大本营】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    使用系统定时器SysTick来实现精确延时微秒和毫秒函数

    到 0 时,将从RELOAD 寄存器自动重装载定时初值,开始新一轮计数。使用内核的SysTick定时器来实现延时,可以不占用系统定时器,由于和MCU外设无关,所以代码的移植,在不同厂家的Cortex-M
    发表于 11-20 07:12

    printf函数在hbird SDK的应用

    在helloworld的例程,使用到了printf函数,通过串口输出了数据。 在Nuclei Studio通过teminal窗口可以查看串口打印的信息。 这背后的原理是什么
    发表于 10-31 08:48

    GCC编译器,怎么才能实现c文件未被调用的函数,不会被编译呢?

    GCC编译器,怎么才能实现c文件未被调用的函数,不会被编译?有什么编译选项可以设置吗? 移植代码,有些函数没被调用的
    发表于 09-28 12:25

    EXCEL导入—设计与思考

    EXCEL导入—设计与思考 一、案例信息与设计 1.1、案例需求与背景 B2BTC同城二期有一个Excel导入的功能,单次数据量小于一千,使用频次不高。但涉及到多个字段组成唯一约束,即每条数据操作
    的头像 发表于 08-20 16:56 480次阅读
    <b class='flag-5'>EXCEL</b>导入—设计与思考

    树莓派用户必备的五大微软Excel替代软件!

    微软Excel通常是处理XLS、XLSX或CSV等电子表格时首先考虑的工具。然而,由于它对ARM处理器和Linux操作系统缺乏原生支持,在树莓派上使用微软Excel颇具挑战性。但这并不意味着没有好
    的头像 发表于 07-17 17:17 675次阅读
    树莓派用户必备的五大微软<b class='flag-5'>Excel</b>替代软件!

    如何导出Excel文件 -- excel_hm介绍 ##三方SDK##

    前阵子在和朋友讨论,记账类的app已经那么普遍了,如果想要做点不一样的还能加什么功能。从我自己的角度出发,我觉得完全可以加一个导出Excel嘛。但是目前原生鸿蒙并没有导出Excel的方法,常规的做法
    发表于 06-30 17:57

    深入理解C语言:函数—编程的“积木块”艺术

    在编程的世界里,函数就像建筑的“积木块”——它们是构建复杂程序的基石。通过灵活组合这些模块,开发者能打造出功能强大且结构清晰的代码。函数之所以成为C语言的核心,正是因为它解决了编程
    的头像 发表于 06-30 17:26 1495次阅读
    深入理解C语言:<b class='flag-5'>函数</b>—编程<b class='flag-5'>中</b>的“积木块”艺术

    详解RTOS的Hook函数

    Hook函数是RTOS的一个关键特性,通过该函数,用户可以增强对任务管理的控制,定义系统行为。
    的头像 发表于 03-24 16:14 839次阅读

    在D4100_usb.dll动态库应该使用哪些相关的函数才能实现Activex的MemToFrameBuffer(),LoadToDMD() 功能?

    使用Activex时可以正常读取图片并显示。但当使用D4100_usb.dll动态库时,不清楚怎样才能将数据显示到DMD。 请问在D4100_usb.dll动态库应该使用哪些相关的函数才能
    发表于 02-28 06:17

    Spire.Cloud.Excel云端Excel文档处理SDK

    Spire.Cloud.Excel 是一款专业的云端 Excel 文档处理 SDK,开发人员可调用 SDK 在云端创建、读取、编辑、转换、及保存 Excel 文档。作为一款完全独立的 Office
    的头像 发表于 02-13 11:03 785次阅读
    Spire.Cloud.<b class='flag-5'>Excel</b>云端<b class='flag-5'>Excel</b>文档处理SDK

    使用插件将Excel连接到MySQL/MariaDB

    可以快速地将数据从 MySQL 或 MariaDB 加载到 Excel,立即从数据库刷新 Excel 工作簿的数据,编辑这些数据,并将它们保存回 MySQL。之后您能够像使用的
    的头像 发表于 01-20 12:38 1130次阅读
    使用插件将<b class='flag-5'>Excel</b>连接到MySQL/MariaDB

    西门子TIA Portal函数FC和函数块FB的相互转换

    描述 本文将介绍在西门子 TIA Portal 中使用 Add-In 插件实现函数 FC 和函数块 FB 的相互转换的方法和步骤。 第1步: 添加 PLC 设备。 选择西门子 CPU 1214C
    的头像 发表于 01-15 10:07 3037次阅读
    西门子TIA Portal<b class='flag-5'>中</b><b class='flag-5'>函数</b>FC和<b class='flag-5'>函数</b>块FB的相互转换

    适用于Oracle的Devart Excel插件:轻松管理数据

    工作簿的数据,编辑这些数据并将其保存回 Oracle。它使您能够像使用 Excel 工作表一样处理 Oracle 数据,可以轻松进行数据清理和重复数据删除的工作,并将 Excel
    的头像 发表于 01-14 11:11 943次阅读
    适用于Oracle的Devart <b class='flag-5'>Excel</b>插件:轻松管理数据

    Devart Excel的附加组件

    数据 - 直接在电子表格编辑数据 - 即时刷新数据 - 现场验证数据的正确性 - 在线和离线处理实时数据 通过 Excel 处理 25 种以上的数据源   轻松管理 Excel 数据   不再需要
    的头像 发表于 01-07 11:40 768次阅读

    stdio.h实现了printf函数?

    我们平时包含的 stdio.h 头文件,里面是不是实现了 printf 函数? 为什么会有这个疑问?因为每次使用 printf,就得包含 stdio.h ,这就导致很多同学误以为,stdio.h
    的头像 发表于 12-18 10:28 869次阅读