如何基于pandas中的公共密钥合并两个数据集?

时间:2017-03-12 23:16:18

标签: python pandas foreign-keys merging-data

我有两个包含域名的数据集:

df1:

varA     domains            
123     www.google.com   
456     www.ebay.com     
789     www.amazon.com   
101     www.nbc.com      
....

DF2:

 urls            varB
www.cnn.com      xsd
www.ebay.com     wer
www.nbc.com      xyz
www.amazon.com   zyx
....

我需要在df2中使用df1中的varA值填充匹配的域/ url中的url值,因此输出将如下所示:

 urls            varA   varB
www.ebay.com     456    wer
www.nbc.com      101    xyz
www.amazon.com   789    zyx
....

应删除df2中df1中没有匹配域的所有域。

我有这段代码:

target_cols = ['domains', 'urls', 'varB', 'varA']
df2.merge(df1[target_cols], on='urls', how='inner')

代码生成错误。

我该如何解决?任何可行的替代解决方案?

1 个答案:

答案 0 :(得分:2)

错误是因为您要合并的键没有相同的名称 这将有效

pd.merge(df1, df2, left_on = 'domains', right_on = 'urls', how = 'inner').drop('domains', axis = 1)


    varA    urls            varB
0   456     www.ebay.com    wer
1   789     www.amazon.com  zyx
2   101     www.nbc.com     xyz