我有一个像这样的 Pandas 电影数据框
id, name, genre, release_year
1 A [a,b,c] 2017
2 B [b,c] 2017
3 C [a,c] 2010
4 D [d,c] 2010
....
我想根据流派列表中的值对电影进行分组。 我的预期输出是:
year, genre, number_of_movies
2017 a 1
2017 b 2
2017 c 2
2010 a 1
2010 c 2
...
有人可以帮我实现这个目标吗?
最佳答案
您可以通过构造函数创建新的DataFrame
,通过stack
reshape 。并用于计数 groupby
与 size
:
df1 = (pd.DataFrame(df['genre'].values.tolist(), index=df['release_year'].values)
.stack()
.reset_index(name='genre')
.groupby(['release_year','genre'])
.size()
.reset_index(name='number_of_movies'))
print (df1)
release_year genre number_of_movies
0 2010 a 1
1 2010 c 2
2 2010 d 1
3 2017 a 1
4 2017 b 2
5 2017 c 2
关于python - 如何根据数据框python中列中列表的值进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49220479/