我正在尝试使用pd.get_dummies()函数将分类特征转换为数字,但是问题是我有一个带有列表的列。顺便说一下,这是流派列。
0 ['Action', 'Adventure', 'Comedy', 'Drama', 'Sc...
1 ['Action', 'Drama', 'Mystery', 'Sci-Fi', 'Space']
2 ['Action', 'Sci-Fi', 'Adventure', 'Comedy', 'D...
3 ['Action', 'Magic', 'Police', 'Supernatural', ...
4 ['Adventure', 'Fantasy', 'Shounen', 'Supernatu...
我已经尝试了解决此问题的stackoverflow上的所有答案。没用
我希望输出为
0 'Action', 'Adventure', 'Comedy', 'Drama', 'Sc...
1 'Action', 'Drama', 'Mystery', 'Sci-Fi', 'Space'
2 'Action', 'Sci-Fi', 'Adventure', 'Comedy', 'D...
3 'Action', 'Magic', 'Police', 'Supernatural', ...
4 'Adventure', 'Fantasy', 'Shounen', 'Supernatu...
这样我就可以使用get_dummies来创建假人了。请帮忙!
答案 0 :(得分:0)
您可以在0.25以上的熊猫中使用explode来做到这一点
d = {"genre":[['Action', 'Adventure', 'Comedy', 'Drama'],
['Action', 'Drama', 'Mystery', 'Sci-Fi', 'Space'],
['Action', 'Sci-Fi', 'Adventure', 'Comedy'],
['Action', 'Magic', 'Police', 'Supernatural'],
['Adventure', 'Fantasy', 'Shounen', 'Supernatu']]}
df = pd.DataFrame(d)
pd.get_dummies(df.explode("genre").pivot(columns="genre", values="genre"))