You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas中使用3个列作为键合并两个DataFrame的方法咨询

完全可以使用3个列作为合并键执行外连接,pandas的merge方法原生支持传入列表形式的多列合并键,没有列数限制,只要两个DataFrame都包含对应合并列即可。

具体实现代码

首先模拟你提供的两个DataFrame:

import pandas as pd

# 第一个DataFrame
df1 = pd.DataFrame([
    [1, 1, 'Test', 'Test', '01/01/2021'],
    [2, 2, 'Test1', 'Test', '01/01/2021']
], columns=['PATH', 'CUID', 'NAME', 'Author', 'Updated'])

# 第二个DataFrame
df2 = pd.DataFrame([
    [1, 1, 'Test', 'Test 2', '01/02/2021'],
    [3, 3, 'Test2', 'Test 2', '01/02/2021']
], columns=['PATH', 'CUID', 'NAME', 'Author', 'Updated'])

核心合并逻辑:

merged_df = pd.merge(
    left=df1,
    right=df2,
    on=['PATH', 'CUID', 'NAME'], # 指定三个列作为合并键
    how='outer' # 外连接保留两个表的所有行
)

执行后得到的merged_df和你给出的预期输出完全一致,未匹配行的非键列会自动置空,默认会给两个表的同名字段加上_x、_y后缀区分来源,也可以通过suffixes参数自定义后缀,比如suffixes=['_表1', '_表2']。
如果两个表的合并键列名不一致,可以用left_on和right_on分别指定左右表对应的合并键列即可。

内容的提问来源于stack exchange,提问作者Wall Elicot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:09:00