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

在Pandas中根据Table A的id匹配Table B行并合并生成新表

表合并与筛选解决方案

问题背景

现有两张表数据如下:

Table A

idweek
f8y50
ab550

Table B

idweek
f8y40
f8y35
2op23

需求:提取Table B中所有id存在于Table A中的行,再将这些行与Table A中对应id的行合并,生成按week升序排列的新表,期望输出如下:

期望输出

idweek
f8y35
f8y40
f8y50

解决方案(SQL实现)

WITH common_ids AS (
    -- 找出同时存在于Table A和Table B中的id
    SELECT DISTINCT id FROM TableA WHERE id IN (SELECT id FROM TableB)
)
SELECT id, week
FROM (
    -- 提取Table B中符合条件的行
    SELECT id, week FROM TableB WHERE id IN (SELECT id FROM common_ids)
    UNION ALL
    -- 提取Table A中对应id的行
    SELECT id, week FROM TableA WHERE id IN (SELECT id FROM common_ids)
) AS combined_data
ORDER BY week ASC;

步骤说明

  • 步骤1:通过CTE common_ids筛选出同时存在于两张表中的id(本例中仅f8y),避免后续重复判断。
  • 步骤2:从Table B中提取id在common_ids内的行,得到f8y对应的两条记录。
  • 步骤3:从Table A中提取id在common_ids内的行,得到f8y对应的一条记录。
  • 步骤4:使用UNION ALL合并两组数据(相比UNION,不会去重,效率更高,且本例无重复数据)。
  • 步骤5:按week字段升序排序,得到最终的有序结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:15:21