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

R语言合并不同大小表格且避免首两列重复的实现方法

嘿,折腾一天没头绪太闹心了!其实这个需求用左连接(Left Join)+缺失值填充就能轻松搞定,我给你分两种常用场景写具体解法:

用SQL实现

假设你的表就是x和y,核心思路是把x作为主表保留所有行,匹配y中A、B列完全一致的记录,最后把匹配不到的C列值替换为0:

SELECT 
    x.A, 
    x.B, 
    COALESCE(y.C, 0) AS C
FROM x
LEFT JOIN y ON x.A = y.A AND x.B = y.B
ORDER BY x.A;
  • LEFT JOIN会保留x的所有行,仅匹配y中A、B都相同的记录;
  • COALESCE函数会把匹配不到时出现的NULL值替换成0;
  • 最后按A列排序就能得到你想要的结果。
用Python Pandas实现

如果是用Pandas处理数据框,步骤同样是左连接后填充缺失值:

import pandas as pd

# 先构造示例数据(你可以替换成自己的数据源)
x = pd.DataFrame({'A': [1,3,5,7,9], 'B': [2,4,6,8,10]})
y = pd.DataFrame({'A': [1,3,9], 'B': [2,4,10], 'C': [123,456,789]})

# 按A、B列做左连接
merged_df = pd.merge(x, y, on=['A', 'B'], how='left')
# 将C列的缺失值(NaN)替换为0
merged_df['C'] = merged_df['C'].fillna(0)
# 可选:把C列转为整数类型(如果需要的话)
merged_df['C'] = merged_df['C'].astype(int)

print(merged_df)

运行后输出的结果和你期望的完全一致:

A   B    C
0  1   2  123
1  3   4  456
2  5   6    0
3  7   8    0
4  9  10  789

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:55:21