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

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

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

作者宁晨

前言

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

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

数据源位置为Sheet1工作表:

python 实现vlookup python的vlookup_内联函数

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

python 实现vlookup python的vlookup_Desktop_02

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

第一步:分别读取数据

#第一步:读取指定数据,注意工作表名称‘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='匹配结果')

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

表格拖拽功能

表格拖拽功能 可以随意拖拽表格顺序 !DOCTYPE htmlhtmlhead meta charset=utf-8 meta name=viewport content=width=device-width,initial-scale=1.0
script src=https://cdn.jsdelivr.net/npm/vue/dist/vue.js/script style ul { list-style: none; padding-b

【Matlab】函数输入个数不定怎么办?

【Matlab】函数输入个数不定怎么办? 有时调用Matlab官方函数时,发现一些函数输入参数的数量可多可少,可长可短,可大可小,咳咳。。 比如常见的 xlsread 函数,可以直接读 Excel 文件,也可以指定读取 Excel 的范围,那么这种功能是怎么实现的呢? 首先,我

跨表格拖拽功能

跨表格拖拽功能 !DOCTYPE htmlhtml lang=enhead meta charset=UTF-8 meta name=viewport content=width=device-width, initial-scale=1.0 script src=https://cdn.jsdelivr.net/npm/vue/dist/vue.js/script titleDocument/title style .List-move { transitio

inl文件

inl文件 inl文件 :inl文件是内联函数的源文件。 内联函数通常在C++头文件中实现,但是当C++头文件中内联函数过多的情况下, 我们想使头文件看起来简洁点,像普通函数那样将内联函数声明和函数定义放在头文件和实现文件中, 具体做法 将是:将内联函数的具体

生命周期流程钩子函数

生命周期流程钩子函数 生命周期流程 $mount()方法 :作用与 el 属性一样,都是可以将vue实例渲染到视图容器中 template属性 :如果设置了这个属性,将来在页面上渲染时会将 template 作为页面的内容进行渲染 1. 创建一个vue实例 2. 初始化事件生命周期 在创建

ionic3+cordova实现IOS TSC蓝牙热敏打印机打印功能

ionic3+cordova实现IOS TSC蓝牙热敏打印机打印功能 苹果手机连接蓝牙打印机可以直接通过系统设置中的蓝牙进行连接,所有工程中就没有做连接打印机的模块; 首先自定义一个cordova插件,引入IOS模块,将官方提供的IOS SDK复制进去,最后目录为: 修改plugin.xm

适配器模式

适配器模式 适配器模式 ? 我问知道,智能手机功能强大,在早些年的时候,可以通过耳机直接连接手机音频接口听歌,但现在许多手机都取消了音频接口,如果继续使用老款耳机听歌,则必须购买耳机转接器才可以听歌,这个耳机转接器就相当于一个适配器,在java开发

java 实现查询近七天数据功能

java 实现查询近七天数据功能 接上一篇 如何使用echarts表图地址 实现了页面的表图 那么如何对接数据 如何使用 耐心看完!!! 这次就以右下角这一个表图做示范 这个表图的下面是按时间排序的 并且是动态的 每次获取从今天到前六天的日期 共七天 上面的数据代