Python:按索引组合两个dataframe,并组合具有相同名称的列

2024-09-26 18:03:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个数据帧,我想执行一个外部连接。两个数据帧都共享一个共同的索引名以及几个也共享相同名称的列名

我想将这些数据帧与索引上的外部连接结合起来(没有索引丢失,但是公共索引结合起来)。此外,我还希望合并在两个数据帧中共享相同名称的列

到目前为止,我已经能够使用merge()、join()、concat()做其中一个。我还不能生成一个数据帧,在索引上连接,同时也组合相同的列

我想合并的数据帧示例:

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

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看起来像这样;Index='资源名称':

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

任何帮助都将不胜感激


Tags: 数据name名称indexstatus资源programresource
1条回答
网友
1楼 · 发布于 2024-09-26 18:03:44

试试^{}

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

相关问题 更多 >

    热门问题