简体   繁体   English

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

[英]Merge two dataframes based on same column value

I want to do vlookup in pandas like in excel.我想在 pandas 中进行 vlookup,就像在 excel 中一样。 In other words:换句话说:

  • If there are same values in both columns (B and C) then print it in new column D (while keeping column A).如果两列(B 和 C)中的值相同,则在新列 D 中打印(同时保留 A 列)。
  • In any other case put NaN在任何其他情况下,将 NaN

I did: vlookup = df1.merge(df2, on = 'A') but it copies the column value of B and puts everywhere.我做到了: 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

Desired output:所需的 output:

df3 = 
A      D      

car    VB     
car    K2     
cat    NaN
car    NaN    
cat    NaN

You should do你应该做

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM