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

如何实现无重复缺失行的DataFrame外连接合并?

高效解决方案

核心思路是为每个分组添加组内序号,将序号与A共同作为合并键,这样只有同分组同序号的行会匹配,超出匹配数量的行自然会填充NaN,避免重复值填充。

实现代码

# 为两个DataFrame添加组内序号
df1['idx'] = df1.groupby('A').cumcount()
df2['idx'] = df2.groupby('A').cumcount()

# 以A和idx为键做外连接
merged = pd.merge(df1, df2, how='outer', on=['A', 'idx'])

# 去掉临时的idx列,调整列顺序(可选,匹配目标结果格式)
merged = merged.drop('idx', axis=1)[['A', 'B_x', 'C_x', 'B_y', 'C_y']]

print(merged)

输出结果

A   B_x  C_x  B_y  C_y
0  10   0.0  2.0  4.0  7.0
1  10   4.0  7.0  NaN  NaN
2  20   5.0  8.0  5.0  8.0
3  20   NaN  NaN  6.0  9.0
4  30   6.0  9.0  NaN  NaN

方案优势

  1. 无需指定列名:不管df1/df2有多少列,都不需要手动处理重复列,完全通用
  2. 逻辑简洁高效:利用分组序号精准匹配,避免后续的重复值替换操作,性能更优
  3. 结果完全符合需求:自动为超出匹配数量的行填充NaN,无需额外调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:53:19