python – 在Pandas数据帧中查找重复值和排序的计数

我有一个包含许多列的Pandas数据框,其中两个是“电影名称”和“年龄”,我想找到排名最低的前五部电影,但只包括至少有电影的电影100个评分(所以至少出现在100行).

例如:

movie title      age

Title 1          10
Title 2          12
Title 2          12
Title 3          13
Title 3          13
Title 3          13

应该成为:

movie title     # of ratings     avg age

Title 1         1                    10
Title 2         2                    12
Title 3         3                    13

它可以在相同或新的数据帧中.谢谢你的帮助!

解决方法:

过滤器为每部电影创建一个标志,如果电影标题数量超过一百,则设置为True,否则设置为False.

n = 100
filter = (df.groupby(['movie title'])['age']
          .transform(lambda group: group.count()) >= n)

鉴于样本数据的小尺寸,我将n设置为2并创建我的过滤器.

现在我只过滤计数超过n的电影,计算每组的平均年龄,然后取五个最小(即最低年龄).

>>> df[filter.values].groupby('movie title').age.mean().nsmallest(5)
movie title
Title 2    12
Title 3    13
Name: age, dtype: int64

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐