vlookup函数功能非常强大,那在Python中如何实现?

vlookup函数功能非常强大,那在Python中如何实现?[Python常见问题]

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于艾然飞翔,作者宁晨

前言

在exce中vlookup函数功能非常强大、方便;但总是手动操作,毕竟还是不高效。在VBA里把一系列的手动操作变为一键操作实现目标,是不错的选择。如果你也会使用python的话,会发现目标实现起来,更简单。

那么使用python操作excel时怎么实现这个功能?

数据源位置为Sheet1工作表:

vlookup函数功能非常强大,那在Python中如何实现?

 

要在另一个工作表Sheet2里查询到上表里的后四列信息:

vlookup函数功能非常强大,那在Python中如何实现?

 

vlookup函数功能非常强大,那在Python中如何实现?

 

实现起来很简单,分三步走:

第一步:分别读取数据

#第一步:读取指定数据,注意工作表名称‘Sheet1’的首字母是大写状态
df_source=pd.read_excel(r"/Users/dxn/Desktop/vlookup.xlsx",header=0,sheet_name="Sheet1",skipfooter=1)
df_target=pd.read_excel(r"/Users/dxn/Desktop/vlookup.xlsx",header=0,sheet_name="Sheet2")

 

第二步:设置两表共享有相同的索引列

#第二步,设置共有索引
df_source.set_index("物料名称")
df_target.set_index("物料名称")

 

第三步:update方法完成目标

#第三步,update方法实现目标
df_target.update(df_source)

 

这三步是目标实现的关键步骤,思路清晰易懂,操作简单。

完整代码如下:

import numpy as np
import pandas as pd
import os
import openpyxl
from openpyxl import Workbook

#在python中实现excel里的Vlookup函数功能,分三步走
#创建一个文件夹以存放操作后的文件
os.mkdir(r"/Users/dxn/Desktop/result")
#创建工作簿以盛放操作结果表
wb=Workbook()
wb.save(r"/Users/dxn/Desktop/result/匹配结果.xlsx")

#第一步:读取指定数据,注意工作表名称‘Sheet1’的首字母是大写状态
df_source=pd.read_excel(r"/Users/dxn/Desktop/vlookup.xlsx",header=0,sheet_name="Sheet1",skipfooter=1)
df_target=pd.read_excel(r"/Users/dxn/Desktop/vlookup.xlsx",header=0,sheet_name="Sheet2")

#第二步,设置共有索引
df_source.set_index("物料名称")
df_target.set_index("物料名称")

#第三步,update方法实现目标
df_target.update(df_source)

#导出形成工作表
with pd.ExcelWriter(r"/Users/dxn/Desktop/result/匹配结果.xlsx",mode="a") as writer:
    df_target.to_excel(writer,sheet_name="匹配结果")