我有Yelp数据集,我想统计所有超过3星的评论。我通过这样做得到了评论的数量:

reviews.groupby('business_id')['stars'].count()

现在,我想获得超过3颗星的评论数量,所以我尝试从以下方面获得灵感:
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).count()})

但这只是给了我以前所有星星的数量。我不确定这是不是正确的方法?我在这里做的不对。lambda表达式是否不通过stars列的每个值?
编辑:
好吧,我觉得自己很傻。我应该使用sum函数而不是count来获取大于3的元素的值,如下所示:
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).sum()})

最佳答案

您可以尝试执行以下操作:

reviews[reviews['stars'] > 3].groupby('business_id')['stars'].count()

关于python - 计算项目大于pandas groupby中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40710811/

10-11 17:57