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

如何在Pandas中基于两列实现DataFrame的Merge/Join左连接?

Pandas基于多列实现Left Join的方法

你可以直接使用Pandas的merge()函数,通过指定左右表的匹配列对,并设置连接类型为left来实现需求。

示例代码

首先构造你的示例数据:

import pandas as pd

# 构造df1
df1 = pd.DataFrame({
    'key': [1, 23],
    'atTime': [3, 8],
    'c': [4, 3],
    'd': ['a', 'g'],
    'e': [100, 230]
})

# 构造df2
df2 = pd.DataFrame({
    'xkey': [30, 1],
    'xatTime': [2, 3],
    'z': ['p', 'l']
})

执行多列左连接:

resultDF = pd.merge(
    df1,
    df2,
    left_on=['key', 'atTime'],
    right_on=['xkey', 'xatTime'],
    how='left'
).drop(columns=['xkey', 'xatTime'])  # 移除右表重复的匹配列

参数说明

  • left_on:指定左表(df1)用于匹配的列,这里是['key', 'atTime']
  • right_on:指定右表(df2)对应的匹配列,这里是['xkey', 'xatTime']
  • how='left':明确使用左连接,保留df1的所有行,df2中无匹配的行对应列填充NaN
  • 最后用drop()移除右表的匹配列(因为左表已经有相同含义的列),让结果和你预期的结构一致

最终结果

运行后resultDF的输出如下:

key  atTime  c  d    e    z
0    1       3  4  a  100    l
1   23       8  3  g  230  NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 00:22:16