I have the Yelp dataset and I want to count all reviews which have greater than 3 stars. I get the count of reviews by doing this:
reviews.groupby(\'business
As I also wanted to rename the column and to run multiple functions on the same column, I came up with the following solution:
# Counting both over and under
reviews.groupby('business_id')\
.agg(over=pandas.NamedAgg(column='stars', aggfunc=lambda x: (x > 3).sum()),
under=pandas.NamedAgg(column='stars', aggfunc=lambda x: (x < 3).sum()))\
.reset_index()
The pandas.NamedAgg allows you to create multiple new columns now that the functionality was removed in never versions of pandas.