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

电影推荐数据集genre列拆分:如何按|分隔转为多列?

最优实现:用Pandas一键拆分并生成独热编码列

嘿,这个需求在电影数据集预处理里太普遍了!最简洁高效的方式绝对是用Pandas的str.get_dummies()方法,它能直接把用|分隔的多类别字段转换成独立的二进制列(独热编码),完全匹配你的需求。

先看你的示例数据:

movieId	title	genres
0	1	Toy Story (1995)	Adventure|Animation|Children|Comedy|Fantasy
1	2	Jumanji (1995)	Adventure|Children|Fantasy
2	3	Grumpier Old Men (1995)	Comedy|Romance
3	4	Waiting to Exhale (1995)	Comedy|Drama|Romance
4	5	Father of the Bride Part II (1995)	Comedy

完整实现步骤

  1. 导入Pandas并加载数据集
  2. 用str.get_dummies()拆分genre列,指定分隔符为|
  3. 将拆分后的列合并回原数据集

直接上可运行的代码:

import pandas as pd

# 加载数据集(这里用你的示例数据模拟,实际可以用pd.read_csv加载文件)
df = pd.DataFrame({
    'movieId': [1, 2, 3, 4, 5],
    'title': [
        'Toy Story (1995)',
        'Jumanji (1995)',
        'Grumpier Old Men (1995)',
        'Waiting to Exhale (1995)',
        'Father of the Bride Part II (1995)'
    ],
    'genres': [
        'Adventure|Animation|Children|Comedy|Fantasy',
        'Adventure|Children|Fantasy',
        'Comedy|Romance',
        'Comedy|Drama|Romance',
        'Comedy'
    ]
})

# 拆分genre列,生成独热编码
genre_columns = df['genres'].str.get_dummies(sep='|')

# 合并到原数据集
final_df = pd.concat([df, genre_columns], axis=1)

# 可选:如果不需要保留原始genres列,可以删除它
# final_df = final_df.drop('genres', axis=1)

# 查看结果
print(final_df.head())

结果说明

运行后你会得到每个电影类型对应的独立列,比如Adventure、Animation等,列值为1表示该电影属于这个类型,0表示不属于。这种格式非常适合后续的推荐系统建模(比如协同过滤、机器学习分类)或者数据分析。

为什么这是最优方式?

  • 效率极高:Pandas的矢量化操作比手动循环处理快几个数量级,哪怕是几十万条数据的大集也能秒处理
  • 代码简洁:一行代码完成拆分+编码,可读性极强,后续维护成本低
  • 通用性强:不管分隔符是什么,只要修改sep参数就能适配,还能直接和原数据集无缝合并

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:09:06