如何根据列中的列表元素对数据框进行分组

我有一个像这样的数据框:


   movie_id genres

0         2  [1,2]

1         3  [1,3]

2         4  [2,4]

我想根据类型类型制作电影组(重复)。像这样:


   genre_group movie_id genres

0            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]


蛊毒传说
浏览 76回答 2
2回答

守候你守候我

您可以使用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]

动漫人物

这是你需要达到的结果吗?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)输出:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python