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

如何用Python按ID连接含重复ID的Table A与无重复ID的Table B

解决Pandas按ID连接并保留重复行的问题

你需要的是左连接(left join),Pandas的merge方法完全可以实现,关键是正确设置参数。以下是具体实现代码:

import pandas as pd

# 构造Table A数据
df_a = pd.DataFrame({
    'id': [1, 1, 2],
    'col1': ['Apple', 'Mango', 'Banana']
})

# 构造Table B数据
df_b = pd.DataFrame({
    'id': [1, 2],
    'col3': ['Eat', 'Drink']
})

# 按id字段左连接,保留Table A的所有行(含重复id)
merged_df = pd.merge(df_a, df_b, on='id', how='left')

print(merged_df)

运行结果:

idcol1col3
01AppleEat
11MangoEat
22BananaDrink

关键说明:

  • how='left':确保保留左表(Table A)的所有行,包括重复的id记录
  • 由于Table B的id与col3是一一对应关系,merge会自动将每个id对应的col3值匹配到Table A的所有对应行上
  • concat方法是按轴拼接数据,不适合这种按关键字段关联的场景,所以无法得到预期结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 02:10:33