python实现2表合并1表并实现VLOOKUP功能 | 您所在的位置:网站首页 › excel中和vlookup功能一样 › python实现2表合并1表并实现VLOOKUP功能 |
# 导入数据包 import pandas as pd import datetime import os import shutil import os import re from openpyxl import load_workbook # 创建保存临时表格的文件夹---------------------------------------------------- if not os.path.exists('C:\\Users\\Thinkpad\\Desktop\\临时数据表格'): os.makedirs('C:\\Users\\Thinkpad\\Desktop\\临时数据表格') else: #清理历史遗留处理过的文件夹内容 shutil.rmtree('C:\\Users\\Thinkpad\\Desktop\\临时数据表格') os.makedirs('C:\\Users\\Thinkpad\\Desktop\\临时数据表格') # 创建保存数据最终处理结果表格的文件夹 if not os.path.exists('C:\\Users\\Thinkpad\\Desktop\\数据最终处理结果'): os.makedirs('C:\\Users\\Thinkpad\\Desktop\\数据最终处理结果') else: #清理历史遗留处理过的文件夹内容 shutil.rmtree('C:\\Users\\Thinkpad\\Desktop\\数据最终处理结果') os.makedirs('C:\\Users\\Thinkpad\\Desktop\\数据最终处理结果') # ------------------以下部分是对数据进行初始化------------------------------ dfcl = pd.read_excel('C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出.xlsx', "测量数据表") dfcd = pd.read_excel('C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出.xlsx', "测点对应表") #把测点对应表的设计编号列名修改成于测量数据表的列名一样,用于后续2个表以PointId字段进行连接 dfcd.rename(columns = {'oId':'PointId'},inplace = True) dfcl.to_excel('C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出-copy.xlsx') dfcd.to_excel('C:\\Users\\Thinkpad\\Desktop\\测点对应表-copy.xlsx') dfcl = pd.read_excel('C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出-copy.xlsx') dfcd = pd.read_excel('C:\\Users\\Thinkpad\\Desktop\\测点对应表-copy.xlsx') # 删除未命名列 dfcl = dfcl[dfcl.columns.drop(list(dfcl.filter(regex='Unnamed')))] #在表格开头插入一列,用于VLOOKUP查找设计编号 dfcl = pd.concat([pd.DataFrame(columns=["设计编号"]), dfcl]) dfcl.to_excel('C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出-copy.xlsx') # ------------------以上部分是对数据进行初始化------------------------------ #---------------把2个数据表文件合并成1个数据表文件----------------------------- # 调用pd.ExcelWriter, 需要指定mode="a", engine="openpyxl" # 注意: 将mode设置为"a"表示追加, 但是它要求文件必须存在, 否则报错 writer = pd.ExcelWriter("C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出-copy.xlsx", mode="a", engine="openpyxl") dfcd.to_excel(writer, index=False, sheet_name="Sheet2") # 保存并关闭writer, 写入磁盘 writer.save() writer.close() #---------------把2个数据表文件合并成1个数据表文件----------------------------- #---------------实现EXCEL表格中的VLOOKUP功能-------------------------------- workbook = load_workbook("C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出-copy.xlsx") sheet = workbook["Sheet1"] #把VLOOKUP函数填写到新增的空白列中 for i in range(2, sheet.max_row + 1): sheet[f"B{i}"] = f'=VLOOKUP(C{i},Sheet2!$B$2:$D$34,3,FALSE)' workbook.save(filename="C:\\Users\\Thinkpad\\Desktop\\黄龙水库大坝安全监测数据导出-copy.xlsx") #---------------实现EXCEL表格中的VLOOKUP功能-------------------------------- |
CopyRight 2018-2019 实验室设备网 版权所有 |