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

如何基于两个匹配条件从另一个pandas DataFrame取数为当前DataFrame新增列

实现代码

方案1:使用merge关联(推荐)

直接通过双字段左关联匹配,写法简洁性能最优:

# 仅取df中需要的三个字段,和df1按Name、Age双字段左连接
df1 = df1.merge(df[['Name', 'Age', 'FT_Team']], on=['Name', 'Age'], how='left')

说明:用how='left'可以保证df1的原有行全部保留,不会因匹配不到丢失数据。

方案2:使用map实现双条件匹配

如果要按你原本设想的map方法实现,可以先构造双字段的映射字典,再匹配取值:

# 构造(Name,Age)为key,FT_Team为value的映射字典
ft_team_map = df.set_index(['Name', 'Age'])['FT_Team'].to_dict()
# 按行匹配填充
df1['FT_Team'] = df1.apply(lambda row: ft_team_map.get((row['Name'], row['Age'])), axis=1)

两种方法都可以得到你期望的结果,数据量较大时优先选merge方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:27:05