根据相同的列值合并两个数据框

时间:2020-06-17 23:31:34

标签: python pandas

我想像在Excel中那样在熊猫中进行vlookup。换句话说:

  • 如果两列(B和C)中的值均相同,则将其打印在新的D列中(同时保留A列)。
  • 在任何其他情况下,请放入NaN

我这样做了:vlookup = df1.merge(df2, on = 'A'),但它复制了B的列值并将其放置在各处。

df1 = 

A      B

car    VB
car    K2
car    V9
car    VX

df2 = 

A      C

car    VB
car    K2
cat    BN
monkey AS

所需的输出:

df3 = 
A      D      

car    VB     
car    K2     
cat    NaN
car    NaN    
cat    NaN

1 个答案:

答案 0 :(得分:1)

您应该

df3=df1.merge(df2.rename(columns={'C':'B'}),on=['A','B']).rename(columns={'B':'D'})
     A   D
0  car  VB
1  car  K2