我有一个像这样的数据框: movie_id genres0 2 [1,2]1 3 [1,3]2 4 [2,4]我想根据类型类型制作电影组(重复)。像这样: genre_group movie_id genres0 1 2 [1,2]1 3 [1,3]0 2 2 [1,2]2 4 [2,4]1 3 3 [1,3]2 4 4 [2,4]
2 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
您可以使用explode和map:
df1 = df.explode('genres').sort_values('genres').rename(
columns={'genres' : 'genres_group'})\
.set_index('genres_group',append=True)
df1['genres'] = df1.index.get_level_values(0).map(df['genres'])
print(df1)
movie_id genres
genres_group
0 1 2 [1, 2]
1 1 3 [1, 3]
0 2 2 [1, 2]
2 2 4 [2, 4]
1 3 3 [1, 3]
2 4 4 [2, 4]
动漫人物
TA贡献1815条经验 获得超10个赞
这是你需要达到的结果吗?
genre_group = pd.Series(df.apply(lambda x: pd.Series(x['genres']), axis=1).stack().reset_index(level=1, drop=True), name='genre_group') df = pd.concat([genre_group, df], axis = 1)
输出:
添加回答
举报
0/150
提交
取消