Premium problem63. Filter Groups by an Aggregate Condition

Medium Locked

Group df by animal and keep only the rows belonging to groups whose total visits exceeds 5, dropping every row from groups that don't meet this condition. Return the filtered DataFrame with its original columns and index.

Input

  animal  age  visits priority
a    cat  2.5       1      yes
b    cat  3.0       3      yes
c  snake  0.5       2       no
d    dog  NaN       3      yes
e    dog  5.0       2       no
f    cat  2.0       3       no
g  snake  4.5       1       no
h    cat  NaN       1      yes
i    dog  7.0       2       no
j    dog  3.0       1       no

Output

  animal  age  visits priority
a    cat  2.5       1      yes
b    cat  3.0       3      yes
d    dog  NaN       3      yes
e    dog  5.0       2       no
f    cat  2.0       3       no
h    cat  NaN       1      yes
i    dog  7.0       2       no
j    dog  3.0       1       no

Premium problem

This one's part of Premium. Unlock the full Pandas track plus every other premium problem on the site.

Implement solve(...)