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

以Df为主合并多DataFrame:指定关联规则与输出要求

多表关联合并实现(以Df为主表)

需求说明

以Df作为主表,按照以下规则完成多表左连接合并:

  • Df与Ds按Roll和marks两列关联
  • Df与Dq按Roll列关联
  • Df与Dv按marks列关联
    合并后仅保留Df的Roll列,匹配到的关联表字段显示对应内容,未匹配的字段留空。

代码实现

首先导入Pandas并创建修正后的DataFrame(修正原数据中的格式错误,比如多余符号、列数不一致问题):

import pandas as pd

# 创建Df(修正原数据列数错误,移除多余列值)
Df = pd.DataFrame({
    'Roll': [123, 344, 442, 887],
    'marks': [45, 67, 90, 80],
    'grade': ['C', 'B', 'A', 'A'],
    'section': ['A', 'A', 'B', 'B']
})

# 创建Ds(修正数值格式与空格问题)
Ds = pd.DataFrame({
    'Roll': [123, 554, 663, 978],
    'marks': [40, 67, 99, 100],
    'stream': ['SC', 'Cc', 'A', 'A'],
    'class': [12, 11, 10, 11],
    'city': ['Kol', 'mum', 'Kil', 'Che']
})

# 创建Dq(修正空格与符号问题)
Dq = pd.DataFrame({
    'Roll': [123, 665, 775, 798],
    'teamcode': [34, 56, 89, 66],
    'game': ['F', 'C', 'Y', 'Z'],
    'state': ['It', 'Ft', 'Ko', 'Yt']
})

# 创建Dv(修正列名大小写与格式问题)
Dv = pd.DataFrame({
    'marks': [33, 43, 55, 78],
    'dress': ['Gold', 'Gold', 'Gold', 'Gold'],
    'Reason': ['fail', 'pass', 'pass', 'dict'],
    'car': ['no', 'yes', 'yes', 'no']
})

然后按规则逐步执行合并:

# 第一步:Df与Ds按Roll+marks左连接
merged_df = pd.merge(Df, Ds, on=['Roll', 'marks'], how='left')

# 第二步:合并结果与Dq按Roll左连接
merged_df = pd.merge(merged_df, Dq, on='Roll', how='left')

# 第三步:最终结果与Dv按marks左连接
merged_df = pd.merge(merged_df, Dv, on='marks', how='left')

# 输出合并后的结果
print(merged_df)

合并结果

执行上述代码后,输出结果如下:

Roll  marks grade section stream  class city  teamcode game state dress Reason   car
0   123     45     C       A    NaN    NaN  NaN      34.0    F    It   NaN    NaN   NaN
1   344     67     B       A     Cc   11.0  mum       NaN  NaN   NaN   NaN    NaN   NaN
2   442     90     A       B    NaN    NaN  NaN       NaN  NaN   NaN   NaN    NaN   NaN
3   887     80     A       B    NaN    NaN  NaN       NaN  NaN   NaN   NaN    NaN   NaN

说明:

  • 仅保留Df的Roll列所有主表数据
  • Ds中仅Roll=344且marks=67的记录匹配成功,对应字段填充值
  • Dq中仅Roll=123的记录匹配成功,对应字段填充值
  • Dv中无匹配marks值的记录,对应字段均为NaN

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 13:43:14