If you only need the counts, then `CountsBy` is the way to go:

    CountsBy[Range[100], EvenQ]

You can also do it with the 3rd argument of `GroupBy`:

    GroupBy[Range[100], EvenQ, Length]

If you want the results in a list in a particular order (say, even then odd), you can use `Lookup`:

    Lookup[CountsBy[Range[100], EvenQ], {True, False}, 0]