You need to enable JavaScript to run this app. Pandas合并两个DataFrame使用外连接结果不符合预期如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Pandas合并两个DataFrame使用外连接结果不符合预期如何解决

解决方法

你之前合并出现两列Student、成绩匹配错误,通常是因为调用合并方法时没有显式指定Student作为公共连接键,或是误用了按索引/按位置拼接的方法导致的。

标准实现代码

使用pandas的merge方法即可实现需求:

import pandas as pd

# 外连接合并两个表
merged_df = pd.merge(df, df1, on="Student", how="outer")

参数说明:

  • on="Student":指定两个表共有的Student列作为唯一匹配依据,合并后只会保留1列Student
  • how="outer":取两个表学生姓名的并集,不存在的成绩会自动填充为NaN

特殊情况处理:两表学生列名不一致

如果两个表的学生字段名不相同(比如df中是Student,df1中是Name),使用以下写法:

merged_df = pd.merge(df, df1, left_on="Student", right_on="Name", how="outer")
# 删除多余的学生列,只保留1列即可
merged_df = merged_df.drop("Name", axis=1)

避坑提醒

  • 不要直接用pd.concat([df, df1], axis=1)按列拼接,该方法不会根据学生姓名匹配行,只会按两个表的行顺序对齐,排序不一致时必然出现匹配错误
  • 合并前可先检查Student列是否存在多余空格、大小写不一致的问题,避免相同学生因为名称格式不同被判定为不同记录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 17:57:02