Python Pandas:按索引合并两个数据框,并合并具有相同名称的列

时间:2019-12-10 20:11:28

标签: python pandas

我有两个要在其上进行外部联接的数据框。这两个数据框共享一个公用的索引名称,以及几个也共享相同名称的列名称。

我想将这些数据帧与索引上的外部联接组合在一起(不会丢失任何索引,但会合并普通索引)。另外,我还想合并在两个数据框中共享相同名称的列。

到目前为止,我已经能够使用merge(),join(),concat()来做一个或另一个。我还无法生成一个在索引上同时连接相同列的数据框。

我要合并的数据框示例:

df1看起来像这样;索引='资源名称':

RESOURCE_NAME  PROGRAM_NAME  CENTER STATUS
Doe, John            Prog 1   10545    ETW
Day, Jane            Prog 2   80942    FTE
Dylan, Bob           Prog 3   70641    ETW

df2看起来像这样;索引='资源名称':

RESOURCE_NAME  PROGRAM_NAME  CENTER        MANAGER
Hobbs, Bobs          Prog 4   20813    Costas, Bob
Day, Jane            Prog 2   80942  Harlan, Kevin
Dylan, Bob           Prog 3   70641     Nance, Jim

所需的输出:

RESOURCE_NAME   PROGRAM_NAME  CENTER        MANAGER  STATUS
Doe, John             Prog 1   10545            nan     ETW
Hobbs, Bobs           Prog 4   20813    Costas, Bob     nan
Day, Jane             Prog 2   80942  Harlan, Kevin     FTE
Dylan, Bob            Prog 3   70641     Nance, Jim     ETW

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

尝试combine_first

df1.combine_first(df2)

输出:

                CENTER        MANAGER PROGRAM_NAME STATUS
RESOURCE_NAME                                            
Day, Jane      80942.0  Harlan, Kevin       Prog 2    FTE
Doe, John      10545.0            NaN       Prog 1    ETW
Dylan, Bob     70641.0     Nance, Jim       Prog 3    ETW
Hobbs, Bobs    20813.0    Costas, Bob       Prog 4    NaN