为了账号安全,请及时绑定邮箱和手机立即绑定

将一列转换为多列

将一列转换为多列

偶然的你 2024-01-16 10:45:04
我有一个关于电影类型的数据。流派用“”分隔id   genres0   drama romance1   drama2   comedy3   mystery thriller4   crime thriller...我想按类型划分它们(大约 20 个)id   drama romance comedy...0     1      1      01     1      0      02     0      0      13     0      0      04     0      0      0...我本来想买个假人,但我认为这没有帮助。
查看完整描述

1 回答

?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

这是一个可能的解决方案(df是您的数据框):


pd.merge(df[['id']], pd.get_dummies(df.genres.str.split().explode()),

         left_on='id', right_index=True).groupby('id').sum()

这是一个例子:


>>> df = pd.DataFrame({'id': [0,1,2,3,4], 'genres': ['drama romance', 'drama', 'comedy', 'mystery thriller', 'crime thriller']})

>>> pd.merge(df[['id']], pd.get_dummies(df.genres.str.split().explode()), left_on='id', right_index=True).groupby('id').sum()

    comedy  crime  drama  mystery  romance  thriller

id                                                  

0        0      0      1        0        1         0

1        0      0      1        0        0         0

2        1      0      0        0        0         0

3        0      0      0        1        0         1

4        0      1      0        0        0         1


查看完整回答
反对 回复 2024-01-16
  • 1 回答
  • 0 关注
  • 94 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信