J'ai l'ensemble de données Yelp et je veux compter toutes les critiques qui ont plus de 3 étoiles. J'obtiens le nombre d'avis en faisant ceci:
reviews.groupby('business_id')['stars'].count()
Maintenant, je veux obtenir le nombre de critiques qui avaient plus de 3 étoiles, j'ai donc essayé cela en m'inspirant de ici :
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).count()})
Mais cela me donne juste le compte de toutes les étoiles comme avant. Je ne sais pas si c'est la bonne façon de procéder? Qu'est-ce que je fais mal ici. L'expression lambda ne passe-t-elle pas par chaque valeur de la colonne des étoiles?
EDIT: D'accord, je me sens stupide. J'aurais dû utiliser la fonction sum au lieu de count pour obtenir la valeur des éléments supérieurs à 3, comme ceci:
reviews.groupby('business_id')['stars'].agg({'greater':lambda val: (val > 3).sum()})
Vous pouvez essayer de faire:
reviews[reviews['stars'] > 3].groupby('business_id')['stars'].count()