openpyxl模块---------------实现Excel的vlookup匹配功能(相同顺序的数据)
代码上:
import numpy as np
import pandas as pd
import os
import openpyxl
from openpyxl import Workbook
#在python中实现excel里的Vlookup函数功能,分三步走
#创建一个文件夹以存放操作后的文件
os.mkdir(r'result')
#创建工作簿以盛放操作结果表
wb=Workbook()
wb.save(r'result/匹配.xlsx')
#第一步:读取指定数据,注意工作表名称‘Sheet1’的首字母是大写状态
df_source=pd.read_excel(r'13.xlsx',header=0,sheet_name='Sheet1')
df_target=pd.read_excel(r'13.xlsx',header=0,sheet_name='Sheet2')
#第二步,设置共有索引
df_source.set_index('物料名称')
df_target.set_index('物料名称')
#第三步,update方法实现目标
df_target.update(df_source)
#导出形成工作表
with pd.ExcelWriter(r'result/匹配.xlsx',mode='a') as writer:
df_target.to_excel(writer,sheet_name='匹配结果')
################################################################
实现效果如下:
元数据:
注意事项:
原来加了,skipfooter=1,匹配少了最后一行,去掉这个参数,就能全部匹配到所有数据了
第一步:分别读取数据
#第一步:读取指定数据,注意工作表名称‘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)
这三步是目标实现的关键步骤,思路清晰易懂,操作简单。