首页 > 解决方案 > 使用 3 列在 pandas 中合并 2 个数据框

问题描述

所以基本上我有2个具有以下结构的数据框

PATH     CUID     NAME     Author       Updated     
1        1        Test     Test         01/01/2021
2        2        Test1    Test         01/01/2021    
PATH     CUID     NAME     Author       Updated
1        1        Test     Test 2       01/02/2021
3        3        Test2    Test 2       01/02/2021

是否可以使用 3 个键列进行合并?我知道使用 2 列合并的代码,但不确定是否可以添加第 3 列。

我正在进行外部连接,以便所有值都存在,如果两个数据帧上都没有匹配项,则只有 Author(x or y) 和 Updated(x or y) 将被清空。

示例输出为:

PATH     CUID     NAME     Author_x     Updated_x     Author_y     Updated_y
1        1        Test     Test         01/01/2021    Test 2       01/02/2021
2        2        Test1    Test         01/01/2021    
3        3        Test2                               Test 2       01/02/2021

标签: pythonpandas

解决方案


是的,如果两个数据框中的列具有相同的名称,则可以通过传递一个列表来合并两个以上的键,然后使用 on=['columns1','columns2','columns3']

否则使用 left_on=['columns1','columns2','columns3'], right_on=['columns1','columns2','columns3']

请参阅https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html中的文档


推荐阅读