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

如何匹配两个DataFrame并生成ID与Item组合的新列

解决方案

你这个场景直接用pandas的merge做跨表关联匹配是最高效的方案,pandas底层针对关联操作做了性能优化,远快于手动用np.select遍历匹配,也不会出现标签对齐相关的报错。

具体实现代码如下:

# 按ID字段关联两个表,inner join仅保留DF2中存在的ID
result = DF2.merge(DF1, on="ID", how="inner")
# 拼接ID和Item生成目标列,注意先把数值型ID转成字符串类型
result["Item / ID"] = result["ID"].astype(str) + " - " + result["Item"]
# 筛选保留需要的字段即可得到最终结果
result = result[["ID", "Item / ID"]]

如果存在DF2的ID在DF1中匹配不到的场景,可以把关联方式改为左连接,自定义缺省值:

# 左连接保留DF2所有ID
result = DF2.merge(DF1, on="ID", how="left")
# 匹配不到的Item填充自定义缺省值
result["Item"] = result["Item"].fillna("N/A")
result["Item / ID"] = result["ID"].astype(str) + " - " + result["Item"]
result = result[["ID", "Item / ID"]]

之前使用np.select报错的原因是该函数要求参与对比的序列长度、索引标签完全一致,两个表行数、索引不一致时自然会触发报错,merge基于字段值做匹配,不需要对齐索引和长度,更适配跨表匹配的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 09:24:03