0.22.0 backports
cc @jreback  lgtm. hopefully will backport cleanly :> A couple builds on https://travis-ci.org/pandas-dev/pandas/builds/322879097 failed (which is just 0.21.1 + a new tag).

The error in https://travis-ci.org/pandas-dev/pandas/jobs/322879104 shouldn't be a problem since it's a conda-build thing which won't affect the wheels or conda-forge.

I'm haven't looked closely at the failures in https://travis-ci.org/pandas-dev/pandas/jobs/322879098#L1824 yeah those might actually be real. Oh, whoops, I used the `td.skip_if_no` decorator that wasn't backported (`nanprod` was used in 1.10.0). I'll just push a commit here that does it manually.

I'll look into those other failures too. I messed up the backport earlier since a `test_categorical.py` was split. Should be fixed now. # [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18986?src=pr&el=h1) Report
> Merging [#18986](https://codecov.io/gh/pandas-dev/pandas/pull/18986?src=pr&el=desc) into [0.22.x](https://codecov.io/gh/pandas-dev/pandas/commit/7bb204a05fee20c3c825e7da39ccaf39fbeb8ca5?src=pr&el=desc) will **decrease** coverage by `0.03%`.
> The diff coverage is `98.5%`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/18986/graphs/tree.svg?src=pr&token=eZ4WkYLtcO&height=150&width=650)](https://codecov.io/gh/pandas-dev/pandas/pull/18986?src=pr&el=tree)

```diff
@@            Coverage Diff             @@
##           0.22.x   #18986      +/-   ##
==========================================
- Coverage   91.33%   91.29%   -0.04%     
==========================================
  Files         156      156              
  Lines       51835    51871      +36     
==========================================
+ Hits        47344    47357      +13     
- Misses       4491     4514      +23
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `89.17% <98.5%> (-0.02%)` | :arrow_down: |
| #single | `40.15% <40.29%> (-0.11%)` | :arrow_down: |

| [Impacted Files](https://codecov.io/gh/pandas-dev/pandas/pull/18986?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [pandas/core/nanops.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvbmFub3BzLnB5) | `96.68% <100%> (+0.01%)` | :arrow_up: |
| [pandas/core/resample.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvcmVzYW1wbGUucHk=) | `96.38% <100%> (+0.03%)` | :arrow_up: |
| [pandas/core/generic.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ2VuZXJpYy5weQ==) | `92.46% <100%> (+0.01%)` | :arrow_up: |
| [pandas/core/groupby.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZ3JvdXBieS5weQ==) | `92.11% <100%> (+0.05%)` | :arrow_up: |
| [pandas/util/testing.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL3V0aWwvdGVzdGluZy5weQ==) | `81% <90%> (+0.08%)` | :arrow_up: |
| [pandas/io/gbq.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL2lvL2dicS5weQ==) | `25% <0%> (-58.34%)` | :arrow_down: |
| [pandas/plotting/\_converter.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL3Bsb3R0aW5nL19jb252ZXJ0ZXIucHk=) | `64.73% <0%> (-1.75%)` | :arrow_down: |
| [pandas/core/frame.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvZnJhbWUucHk=) | `97.75% <0%> (-0.1%)` | :arrow_down: |
| [pandas/core/series.py](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree#diff-cGFuZGFzL2NvcmUvc2VyaWVzLnB5) | `94.91% <0%> (-0.1%)` | :arrow_down: |
| ... and [1 more](https://codecov.io/gh/pandas-dev/pandas/pull/18986/diff?src=pr&el=tree-more) | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18986?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/18986?src=pr&el=footer). Last update [7bb204a...0312ea9](https://codecov.io/gh/pandas-dev/pandas/pull/18986?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).
 you might need to add: https://github.com/pandas-dev/pandas/commit/9c1071be085153d2b7d06417f5b2056ed86a8a70 to make the CI pass.