如何使用Pandas将逗号分隔的字符串列提取为独立的唯一分类值
解决方案
你可以直接对genres列做拆分后展平去重,不需要持久化存储转换后的长表,有两种常用实现方案:
- 方案1:pandas向量化实现,代码简洁,适合中小规模数据集
# 拆分后直接提取去重值,不会产生需要存储的中间长表 unique_genres = df['genres'].str.split(',').explode().unique().tolist()
运行后得到的unique_genres就是所有独立去重的分类列表,输出为:['Horror', 'Mystery', 'Thriller', 'Drama', 'Action', 'Comedy', 'Family']
- 方案2:迭代+集合实现,内存占用极低,适合超大规模数据集
genre_set = set() for g_str in df['genres']: # 逐行拆分分类,加入集合自动去重 genre_set.update(g_str.split(',')) unique_genres = list(genre_set)
如果你后续需要做分类维度的统计分析,也可以临时用explode生成宽转长的中间结果做计算,不需要把中间结果持久化存储即可完成统计:
# 示例:统计每个分类对应的电影数量 genre_count = df['genres'].str.split(',').explode().value_counts()
内容的提问来源于stack exchange,提问作者Aman
相关产品推荐
相关产品推荐

