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

如何基于电影演员DataFrame在NX中构建合作关系边?

用NetworkX构建演员合作图

核心思路

按电影分组,对每部电影的参演演员生成所有两两组合,将这些组合作为边添加到图中,演员自动成为节点。

完整代码实现

假设你的DataFrame列名为电影和演员姓名,代码如下:

import pandas as pd
import networkx as nx
from itertools import combinations

# 加载你的DataFrame(替换成实际加载逻辑)
df = pd.read_csv("你的电影数据.csv")

# 初始化无向图
G = nx.Graph()

# 按电影分组,遍历每组的演员列表
for _, group in df.groupby("电影"):
    actors = group["演员姓名"].tolist()
    # 生成该电影下演员的所有两两组合
    actor_pairs = combinations(actors, 2)
    # 批量添加边
    G.add_edges_from(actor_pairs)

# 验证结果:查看节点数和边数
print(f"节点数(演员总数): {G.number_of_nodes()}")
print(f"边数(合作关系数): {G.number_of_edges()}")

关键优化说明

  • 用itertools.combinations生成两两组合,避免手动嵌套for循环的低效和逻辑错误
  • add_edges_from批量添加边,比逐个添加效率提升显著,适配41000行的大数据量
  • 若需统计演员合作次数(给边加权重),可改用nx.MultiGraph(),先统计组合出现频次再添加带权重的边

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 14:06:19