我有一个名为new_data_set
的数据集,如下所示:
我想找到每年最多出现次数的流派。
所以我做到了:
new_data_set.groupby('release_year')['genre']).apply(lambda x: x.value_counts())`
其结果如下:result
现在我需要从每个组中获取第一行以获得答案。因此结果应如下所示:
1960 Drama
1961 Drama
.
.
我应该怎么做?
答案 0 :(得分:0)
很多解决方案,其中一种就是添加函数头:
result = (new_data_set.groupby('release_year')['genre']
.apply(lambda x: x.value_counts().head(1))
.reset_index())
print(result)
答案 1 :(得分:0)
先添加index[0]
,然后再添加reset_index
:
new_data_set = pd.DataFrame({
'release_year':[2004,2005,2004,2005,2005,2004],
'genre':list('aaabbb')
})
df = (new_data_set.groupby('release_year')['genre']
.apply(lambda x: x.value_counts().index[0])
.reset_index()
)
print (df)
release_year genre
0 2004 a
1 2005 b
答案 2 :(得分:0)
对于一线粉丝:
df = new_data_set.mode()
df
release_year genre
0 2004 a
1 2005 b