Python VLookup无需合并即可获取输出

时间:2019-09-06 09:43:29

标签: python excel pandas dataframe vlookup

我有2个数据集,我需要基于'MAKE'获取'MODEL'列 但结果列位于单独的数据框中(不与现有数据框合并)

我可以使用以下代码合并数据,

def vlookup_sample():

    df1 = pd.read_excel('tb1.xlsx', sheet_name='Sheet1')
    df2 = pd.read_excel('tb2.xlsx', sheet_name='Sheet1')

    df = pd.merge(df1, df2[['MODEL', 'MAKE']], on='MODEL', how='left')
    df["MAKE"].fillna("<n/a>", inplace=True)

    print df

数据集1

ID  MODEL   REQUESTS    ORDERS
1   Golf    123          4
2   Passat  34           5
3   Model 3 500          8
4   M3      5            0

数据集2

MODEL   TYPE    MAKE
Golf    Sedan   Volkswagen
M3      Coupe   BMW
Model 3 Sedan   Tesla

预期输出:

MAKE
 Volkswagen
 Nan
 Tesla
BMW

如何将结果保存到单独的数据中

1 个答案:

答案 0 :(得分:2)

您可以执行相同的合并,并使用df.loc[]从合并输出中调用MAKE列:

new_df = df1.merge(df2,on='MODEL',how='left').loc[:,['MAKE']]
#pd.merge(df1, df2[['MODEL', 'MAKE']], on='MODEL', how='left').loc[:,['MAKE']]