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

Pandas基于双条件实现不同DataFrame之间的值映射方法

双向匹配主客队对应主场优势值的解决方案

你当前用的map方法只支持单维度的键值映射,无法同时匹配主客队两个维度的条件,可选用以下两种方案实现需求:

方案1:逐行索引匹配(适合小数据量场景)

先将主场优势表df的索引设置为主队列,再逐行读取df1的主客队信息,直接索引到对应值:

# 预先设置df的索引为主队,避免循环中重复设置索引浪费性能
df_hfa = df.set_index('Home Team')
# 逐行匹配主客队对应的主场优势值
df1['hfa'] = df1.apply(lambda row: df_hfa.loc[row['Home Team'], row['Away Team']], axis=1)

方案2:宽表转长表后合并(适合大数据量场景,性能更高)

如果你的数据量较大,apply逐行处理效率偏低,可以先将宽格式的df转为长格式,再通过两列主键合并到df1中:

# 将df转为「主队-客队-主场优势」的长表结构
df_long = df.melt(
    id_vars='Home Team',
    var_name='Away Team',
    value_name='hfa'
)
# 基于主客队两列合并数据,left join避免丢失df1的原有数据
df1 = df1.merge(df_long, on=['Home Team', 'Away Team'], how='left')

注意:如果运行后出现NaN值,请先检查两张表的球队名称是否存在拼写差异、大小写不一致、多余空格等匹配问题。

内容的提问来源于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 16:24:00