Python也可以实现Excel中的“Vlookup”函数

举报
朱小五 发表于 2022/08/10 22:25:19 2022/08/10
【摘要】 人生苦短,快学Python! VLOOKUP函数大家应该都很熟悉吧,它可以帮我们根据指定的条件快速查找匹配出相应的结果,通常被用于核对、匹配多个表格之间的数据。与数据透视表,并称为数据er最常用的两大E...

人生苦短,快学Python!

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

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

Excel

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

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

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

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

  
 
  • 1

对应在本次案例中的使用,如下图所示。

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

openpyxl

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

pip install openpyxl

  
 
  • 1

在openpyxl中,读取已有的Excel文件,使用到的是load_workbook类,因此需要提前导入这个类。接着,实例化load_workbook("测试工资数据.xlsx")对象,得到一个工作簿对象。然后,使用workbook["Sheet2"]激活该工作簿中的Sheet2表,表示我们要针对这个表进行操作。完成上述操作后,下面就可以进行vlookup公式的填写了。

from openpyxl import load_workbook 

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

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

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

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

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

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

Pandas

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

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

▲《快学Python:自动化办公轻松实战》

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

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

import pandas as pd
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="姓名")

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

输出:

这样我们就用Python(openpyxl+Pandas)实现了Excel中的“Vlookup”函数。


最近我花了两年写的新书已经上市,也算是我在CSDN博客分享Python知识3年的一个总结!

快学Python:自动化办公轻松实战》点击蓝字查看书籍详情

文章来源: alltodata.blog.csdn.net,作者:朱小五是凹凸君呀,版权归原作者所有,如需转载,请联系作者。

原文链接:alltodata.blog.csdn.net/article/details/126250306

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。