首页 > 解决方案 > 在匹配值上连接两个数据框

问题描述

我有一个人与人之间交易的数据框,但它基于他们的 ID 号:

df =

First ID   Second ID   Total   Currency
854        938         50      GBP
321        438         30      EUR
756        850         50      USD
etc...

我还有第二个 df,其中包含 ID 和他们所链接的人的实际姓名。

ID_df =

ID code   Name
321       John
850       David
etc...

我想将 ID df 加入到主数据框中,这样我就有了人的名字。理想情况下,我希望它看起来像:

df =

First ID   First name   Second ID   Second name   Total  Currency
854        Steve        938         Mike          60     Eur
etc...

标签: pythonpandasmerge

解决方案


2个背靠背连接有什么问题?(如果它变成 2+,你可以用它做一个函数

df = df.merge(id_df,how='left',left_on='first_id',right_on='id_code')\
       .rename(columns={'name':'first_name'})

df = df.merge(id_df,how='left',left_on='second_id',right_on='id_code')\
       .rename(columns={'name':'second_name'})

推荐阅读