如何将DataFrame的title与cast列转为单演员单作品格式用于networkx分析
实现方案
你可以直接使用pandas的内置方法完成字段拆分与行展开操作,步骤如下:
- 首先确保你已经正确导入pandas库,同时确认
cast字段的演员列表使用统一分隔符(以下示例默认使用逗号作为分隔符,你可根据实际情况调整) - 第一步:将
cast字段的字符串转换为演员列表
# 假设原始DataFrame命名为df df['cast'] = df['cast'].str.split(',', expand=False)
- 第二步:将列表形式的
cast字段拆分为多行,每行对应单个演员
# pandas 0.25及以上版本可直接使用explode方法 df_result = df.explode('cast', ignore_index=True) # 可选:去除演员名前后的多余空格,避免同一个演员被重复统计 df_result['cast'] = df_result['cast'].str.strip()
如果你使用的pandas版本低于0.25,可以使用如下替代代码实现相同效果:
df_result = df.set_index('title')['cast']\ .apply(pd.Series)\ .stack()\ .reset_index(level=1, drop=True)\ .reset_index(name='cast')
处理完成后的df_result就符合你需要的格式:每行对应一个演员和其参演的一部影视作品,可直接用于后续networkx的网络构建操作。
内容的提问来源于stack exchange,提问作者Pythonbaby
相关产品推荐
相关产品推荐

