Количество элементов больше значения в pandas groupby

у меня есть набор данных Yelp, и я хочу подсчитать все отзывы, которые имеют более 3 звезд. Я получаю количество отзывов, делая это:

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

Теперь я хочу получить количество отзывов, которые имели более 3 звезд, поэтому я попробовал это, взяв вдохновение от здесь:

reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).count()})

но это просто дает мне подсчет всех звезд, как и раньше. Я не уверен, что это правильный способ сделать это? Что я здесь делаю неправильно. Лямбда-выражение не проходить через каждое значение столбца звезд?

изменить: Ладно, я чувствую себя глупо. Я должен был использовать функцию sum вместо count, чтобы получить значение элементов больше 3, например:

reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).sum()})

1 ответов


вы можете попробовать сделать:

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