首页 > 解决方案 > 如何在两个不同的数据框中搜索一个值并将其添加到第三个?

问题描述

我有一个数据框,我想在其中找到一个可以在两个不同数据框中的两个中的客户编号。我的问题是,我怎样才能快速做到这一点,而不是合并两个数据框,然后询问哪个是空的而不是有用的。

df0

ClientName     City         State
JohnSmith      Dallas         TX
JaneDoe        Dallas         TX
LucasAult      Dallas         TX
CarsonSeibert  Dallas         TX

要查看的df1

ClientName     CLientNumber
JohnSmith      100
JaneDoe        101

要查看的df2

ClientName     CLientNumber
LucasAult        102
CarsonSeibert    103

预期结果

ClientName     City         State   ClientNumber
JohnSmith      Dallas         TX       100
JaneDoe        Dallas         TX       101
LucasAult      Dallas         TX       102
CarsonSeibert  Dallas         TX       103

到目前为止,我提出的解决方案是这样的

df0 = pd.merge(df0, df1, how ='left')
df0 = pd.merge(df0, df2, how ='left')

df0['ClientNumber'] = np.where(df0['ClientNumber'] == None, df1['ClientNumber'], df0['ClientNumber'])

标签: pythonpandasnumpy

解决方案


您可以简单地concat df1df2然后执行合并df0

df0.merge(pd.concat([df1,df2]), on='ClientName')

输出:

ClientName     City         State   ClientNumber
JohnSmith      Dallas         TX       100
JaneDoe        Dallas         TX       101
LucasAult      Dallas         TX       102
CarsonSeibert  Dallas         TX       103

推荐阅读