将一列转换为多列

我有一个关于电影类型的数据。流派用“”分隔


id   genres

0   drama romance

1   drama

2   comedy

3   mystery thriller

4   crime thriller

...

我想按类型划分它们(大约 20 个)


id   drama romance comedy...

0     1      1      0

1     1      0      0

2     0      0      1

3     0      0      0

4     0      0      0

...

我本来想买个假人,但我认为这没有帮助。


偶然的你
浏览 95回答 1
1回答

阿波罗的战车

这是一个可能的解决方案(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  thrillerid                                                  0        0      0      1        0        1         01        0      0      1        0        0         02        1      0      0        0        0         03        0      0      0        1        0         14        0      1      0        0        0         1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python