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

如何创建关联Movie与Actors两个Dataframe的关系表?

生成电影-演员关联表的解决步骤

1. 拆分多分隔符的演员列

先处理原始电影数据里的演员列,把用逗号/斜杠分隔的多个演员拆成单独行,同时保留电影的UUID(假设DF_MOVIE的UUID列叫movie_uuid):

import pandas as pd

# 关联DF_MOVIE拿到每部电影的UUID(用电影名+年份做匹配键,避免重名)
movie_with_uuid = pd.merge(
    你的原始电影DataFrame,  # 替换成你从Excel读入的DataFrame变量名
    DF_MOVIE,
    on=['电影名', '年份'],
    how='left'
)

# 用正则拆分演员列:匹配逗号或斜杠,忽略分隔符后的空格
movie_with_uuid['演员列表'] = movie_with_uuid['演员'].str.split(r'[,/]\s*')
# 把列表展开成单行,每个演员对应一条电影记录
exploded_df = movie_with_uuid.explode('演员列表').dropna(subset=['演员列表'])

2. 关联演员表获取演员ID

将拆分后的演员名和DF_ACTORS匹配,拿到对应的唯一演员ID(假设DF_ACTORS的演员名列是演员名,ID列是actor_id):

actors_movie_link = pd.merge(
    exploded_df[['movie_uuid', '演员列表']],
    DF_ACTORS,
    left_on='演员列表',
    right_on='演员名',
    how='left'
)

# 过滤掉匹配不到的演员记录(按需选择)
actors_movie_link = actors_movie_link.dropna(subset=['actor_id'])

3. 生成最终关联表

提取必要的关联字段,去重后得到DF_ACTORS_MOVIE:

DF_ACTORS_MOVIE = actors_movie_link[['movie_uuid', 'actor_id']].drop_duplicates()
# 可选:重置索引
DF_ACTORS_MOVIE = DF_ACTORS_MOVIE.reset_index(drop=True)

注意事项

  • 正则表达式r'[,/]\s*'能同时处理逗号、斜杠,以及分隔符后可能带的空格,避免拆分出带空格的演员名导致匹配失败。
  • 匹配电影和DF_MOVIE时,一定要用电影名+年份这类组合键,单靠电影名容易因为重名匹配错误。
  • 如果DF_ACTORS里有同名演员,得提前给演员加额外标识(比如别名、出生日期)区分,否则关联会出问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:35:22