【发布时间】:2020-05-01 18:39:08
【问题描述】:
专家,我想在具有两个不同列名的两个 Excel 之间执行 vlookup,并且输出列名也不同。
让我们以下面的例子来理解场景 在源excel文件1中,我在位置A的列名是“计算机名”,在源excel文件2中,我在位置B的列名也是“短”。我想执行vlookup(一种sql的左连接)在 excel file1 的“计算机名”列和 excel file2 的“短”列之间。在 vlookup 之后,我想在 excel file1 中添加 vlookup 的输出作为 cloumn 名称作为“CMDB crosscheck”,它位于最终输出 excel 文件下面显示的屏幕打印中的位置 B。请注意,excel file1 的其余所有列都将保留在那里,只是新列将位于 excel file1 中的位置 B
源 Excel 文件 1:
输出excel文件:
我正在使用下面的代码,但它不起作用。请您提出建议
import pandas as pd
import numpy as np
avclient_workbook ="AV_Clients1.xlsx"
cmdb_workbook = "cmdb_all.xlsx"
output_workbook = "AVClientCMDBAll.xlsx"
df_avclient_workbook = pd.read_excel(avclient_workbook)
df_cmdb_workbook = pd.read_excel(cmdb_workbook)
#print(df_avclient_workbook.columns)
#print(df_cmdb_workbook.columns)
df_avclient_workbook.rename(columns={'Computer name':'short'}, inplace=True) #just trying to rename it
#not able to achive :(
df_3 = pd.merge(df_avclient_workbook, df_cmdb_workbook[['short', 'short']], on='short',how='left')
print(df_3)
【问题讨论】:
-
你自己说的,你在找一个类似于SQL join的操作。为什么不使用 pandas.DataFrame.join() 或 pandas.DataFrame.merge() 呢,这取决于更适合您的需求?
-
Stack Overflow Discourages Screenshots。这个问题很可能会被否决。您不鼓励提供帮助,因为没有人愿意重新输入您的数据或代码,而且屏幕截图通常难以辨认。