我有 Yelp 数据集,我想计算所有超过 3 星的评论。我通过这样做得到评论的数量:
reviews.groupby('business_id')['stars'].count()
现在我想获得超过 3 星的评论数,所以我从 这里 获得灵感来尝试这个:
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).count()})
但这只是像以前一样给了我所有星星的数量。我不确定这是否是正确的方法?我在这里做错了什么。 lambda 表达式不会遍历星号列的每个值吗?
编辑:好吧,我觉得自己很愚蠢。我应该使用 sum 函数而不是 count 来获取大于 3 的元素的值,如下所示:
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).sum()})
原文由 rookie 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以尝试这样做: