BUG: DataFrame.agg and apply with 'size' returns a scalar
- [x] closes #39934
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [x] whatsnew entry
@jreback - I merged master.

> It might be better to detect this argument 'size' and do a translation in 
```pandas/core/base.py:    _builtin_table```

This isn't a builtin; `DataFrame.size` reports the number of cells in the frame (rows * columns). Also not sure what we'd map it to, count is similar and operates on rows/columns but drops nans whereas size does not. my point is to map this to a lambda function to avoid special casing like this @jreback - makes sense, and I agree your suggestion is the prefered way. The one issue is that when replacing `func` with a lambda, the resulting Series has name None whereas tests currently expect "size". I see two ways to handle (hopefully not overlooking something simple):

 1. Mark as TODO and tackle when consolidating code for wrapping results
 2. Add a "result_name" attribute the the Apply class, set to None in all cases except this one where it is "size", and apply it in various methods where appropriate.

It seems easier and less error-prone to go with 1, but I can do 2 here if you prefer. > @jreback - makes sense, and I agree your suggestion is the prefered way. The one issue is that when replacing `func` with a lambda, the resulting Series has name None whereas tests currently expect "size". I see two ways to handle (hopefully not overlooking something simple):
> 
> 1. Mark as TODO and tackle when consolidating code for wrapping results
> 2. Add a "result_name" attribute the the Apply class, set to None in all cases except this one where it is "size", and apply it in various methods where appropriate.
> 
> It seems easier and less error-prone to go with 1, but I can do 2 here if you prefer.

yeah happy to do this in the future. 2 sounds interesting actually. why don't you add a TODO for now (and issue) then can merge this one. @jreback TODO added, issue opened, and green(ish - failure is unrelated). can you merge master & ping on greenish thanks @rhshadrach 