基于公共列ID的两个熊猫数据框之间的vlookup操作类型

时间:2020-01-23 09:56:51

标签: python pandas dataframe merge vlookup

我想对两个数据帧执行vlookup运算,并基于该运算替换一些现有列的值。 例如

df1:

Source Cell Name  Source WCEL DN
   A                   RNC-306
   B                   RNC-307 
   C                   RNC-308
   A                   RNC-308
   D                   RNC-310
   E                   RNC-311
   E                   RNC-311
   F                   RNC-312

df2:

 Name             Target WCEL DN
   B                   RNC-206
   A                   RNC-207 
   D                   RNC-208
   A                   RNC-207
   C                   RNC-209
   B                   RNC-206
   A                   RNC-207
   D                   RNC-208
   E                   RNC-210
   F                   RNC-211
   G                   RNC-212 
   H                   RNC-213 

合并后,我想从df2更新df1并输出如下所示

输出:

df1:

Source Cell Name  Source WCEL DN
   A                   RNC-207
   B                   RNC-206 
   C                   RNC-209
   A                   RNC-207
   D                   RNC-208
   E                   RNC-210
   E                   RNC-210
   F                   RNC-211

我对python还是很陌生,所以请帮助我了解如何使用python中的pandas解析并获取此输出。 还需要注意的是,数据非常庞大,需要合并的列名称具有不同的名称,即df1中的``源单元名称''和df2中的``名称''。 我想从df2的“目标WCEL DN”列更新df1的“源WCEL DN”列,因为我们可以简单地在excel中使用vlookup做到这一点。

1 个答案:

答案 0 :(得分:0)

df1.columns = ['Name', 'Source WCEL DN']
df1.merge(df2, on='Name' , how='left', left_index=True, right_index=True).drop('Source WCEL DN', axis=1)