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

匹配两个DataFrame中的演员姓名并添加累计加权得分

解决方案

核心思路

将df1的演员-得分关系转为字典以提升匹配效率,再对df2的每一行演职人员内容拆分、匹配、累加得分,最终生成新列。

代码实现

假设df1的列名为Actor Names(演员姓名)和weighted Score(加权得分),df2的演职人员列名为Cast:

  1. 构建演员得分映射字典
# 把df1转为姓名到得分的字典,实现快速查找
score_map = df1.set_index('Actor Names')['weighted Score'].to_dict()
  1. 定义累计得分计算函数
def calculate_total_score(cast_content):
    # 拆分演职人员字符串(假设用逗号分隔,可根据实际分隔符调整)
    actors = [actor.strip() for actor in cast_content.split(',')]
    # 累加匹配到的演员得分,未在df1中的演员得0分
    total_score = sum(score_map.get(actor, 0) for actor in actors)
    return total_score
  1. 为df2添加新列
# 对df2的演职人员列应用函数,生成累计得分新列
df2['Total Weighted Score'] = df2['Cast'].apply(calculate_total_score)

注意事项

  • 如果df2的演职人员列本身是列表类型,直接去掉split(',')和strip()步骤,直接遍历列表即可。
  • 若演职人员的分隔符不是逗号,需替换split(',')中的分隔符为实际使用的符号(如|、;等)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 09:05:23