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

Pandas如何基于另一DataFrame的匹配规则为目标表新增关联列

Pandas多表合并实现方法

错误原因

你之前的代码默认按行索引拼接两个DataFrame,且没有建立dd的libcs字段和df行的对应关联关系,dd共18万+行、df仅61行,按索引拼接后除前61行外df的字段都会是空值,无法得到预期结果。

正确实现步骤

你需求的匹配逻辑是libcs=1对应df的第0行数据,libcs=2对应df的第1行,以此类推libcs=61对应df的第60行,直接通过关联字段合并即可:

  1. 先给df新增匹配用的libcs字段:
df['libcs'] = df.index + 1
  1. 用merge按共同字段libcs左连接两个表:
result = dd.merge(df, on='libcs', how='left')

运行后result就是包含BCS、libcs、sample_id、DState四个字段的预期结果表。

简化写法(无需修改原df)

如果不想改动原df的结构,也可以直接通过映射匹配实现:

# 建立libcs到df字段的映射字典
lib_mapping = df.set_index(df.index + 1).to_dict('index')
# 给dd批量新增字段
dd['sample_id'] = dd['libcs'].map(lambda x: lib_mapping[x]['sample_id'])
dd['DState'] = dd['libcs'].map(lambda x: lib_mapping[x]['DState'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:54:06