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

如何拆分列并将频次分类值关联至DataFrame?嵌套字典DataFrame连接实操

解决方案

你的问题核心是分类数据的行数与主DataFrame不匹配,直接拼接哑变量会导致行错位。正确的做法是先按主表的主键对分类数据分组聚合,再与主表合并,步骤如下:

假设主DataFrame(df)和分类DataFrame(genres)共享主键movie_id:

  1. 生成分类列的哑变量,同时保留主键用于分组
genre_dummies = pd.get_dummies(genres, columns=['name'], prefix='', prefix_sep='')
  1. 按主键分组,对哑变量列求和(若每个分类在单一条目中仅出现一次,求和结果就是0/1的存在标记;若有重复则为频次)
genre_agg = genre_dummies.groupby('movie_id').sum()
  1. 将聚合后的分类数据与主DataFrame合并,空值填充为0
result = df.merge(genre_agg, on='movie_id', how='left').fillna(0)

如果你的genres表没有显式的movie_id列,可通过索引对齐分组:

# 假设genres的索引与主df的索引一一对应(每个主df行对应多行genres)
genre_dummies = pd.get_dummies(genres['name'])
genre_agg = genre_dummies.groupby(level=0).sum()
result = df.join(genre_agg)

这样就能得到你预期的结果:主表每一行对应一个条目,后续列是各分类的频次/存在标记。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:30:44