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

如何在Excel/Pandas中基于ID匹配拉取重复ID对应列值?

用Pandas实现基于ID匹配拉取对应列值的解决方案

没问题,我帮你搞定这个重复ID的匹配问题!你的需求核心是保留原表所有重复行,同时按ID匹配另一个表的jul19列值,只处理原表已存在的ID,用Pandas的merge函数就能轻松实现,之前失败大概率是没选对连接方式~

具体步骤和代码示例

我直接给你能跑通的代码,每一步都给你解释清楚:

  1. 导入Pandas并读取两个工作表的数据
  2. 使用左连接按id匹配数据,确保原表的所有行(包括重复ID的行)都被保留
  3. 输出或保存结果
import pandas as pd

# 读取包含jun19和重复ID的工作表
df_jun = pd.read_excel('你的Excel文件路径.xlsx', sheet_name='jun工作表名称')

# 读取包含jul19的工作表
df_jul = pd.read_excel('你的Excel文件路径.xlsx', sheet_name='jul工作表名称')

# 关键操作:按id左连接,保留原表所有行,匹配对应jul19值
result_df = pd.merge(df_jun, df_jul, on='id', how='left')

# 查看结果(和你要的最终格式完全一致)
print(result_df)

# 如果需要把结果保存回Excel,取消下面注释
# result_df.to_excel('匹配结果.xlsx', index=False)

为什么这个方法有效?

  • how='left'是核心:它会完全保留左表(也就是你的jun19表)的所有行,不管右表(jul19表)有没有对应的ID。因为你的原表ID(1、2、3)都在jul表中有对应值,所以所有行都会成功匹配到jul19的值,重复的ID行也会重复拿到对应的数值,正好符合你的需求。
  • 右表中ID为4、5的行因为原表没有,所以不会被加入结果里,完美满足“仅匹配已有ID”的要求。

验证结果

运行后你会得到和你预期完全一致的输出:

id  jun19  jul19
0   1      3      4
1   2      2      6
2   3      7     45
3   1      3      4
4   2      2      6
5   3      7     45
6   1      3      4
7   2      2      6
8   3      7     45

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 22:37:32