Bug in __getitem__ incorrectly dropped columns for empty Series as indexer
- [x] closes #19290
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry

It isn't obvious to me that this is wrong in master.  In the test, `ind` is object dtype, which should be treated as an indexer along columns, so `df[ind]` should match `df[[]]`, which it does in master.  If instead we do `df[ind.astype(bool)]` its indexing along rows and the columns are retained I interpreted the issue the way, that both should do the same. If this is not the case, we can close this PR and the associated issue. can you merge master Merged master, but no longer sure if this fix is doing the correct think as @jbrockmendel  mentioned @jreback i think this is right on master https://github.com/pandas-dev/pandas/pull/37772#issuecomment-725715870 > @jreback i think this is right on master [#37772 (comment)](https://github.com/pandas-dev/pandas/pull/37772#issuecomment-725715870)

can you clarify?  > > @jreback i think this is right on master https://github.com/pandas-dev/pandas/pull/37772#issuecomment-725715870

> can you clarify?

```
df = DataFrame(columns=["a", "b", "c"])

v1 = Series([], dtype=object)
v2 = Series([], dtype=bool)

df[v1]  # <-- object dtype, so indexing on columns, so we expect to get `DataFrame()`
df[v2]  # <-- bool dtype, so indexing on rows, so we expect to get `df`
```

This PR (and the associated issue) are changing `df[v1]` to match `df[v2]`, which it shouldnt. > > > @jreback i think this is right on master [#37772 (comment)](https://github.com/pandas-dev/pandas/pull/37772#issuecomment-725715870)
> 
> > can you clarify?
> 
> ```
> df = DataFrame(columns=["a", "b", "c"])
> 
> v1 = Series([], dtype=object)
> v2 = Series([], dtype=bool)
> 
> df[v1]  # <-- object dtype, so indexing on columns, so we expect to get `DataFrame()`
> df[v2]  # <-- bool dtype, so indexing on rows, so we expect to get `df`
> ```
> 
> This PR (and the associated issue) are changing `df[v1]` to match `df[v2]`, which it shouldnt.

OH! ok Closing this then? And the associated issue if this is the expected behavior? > Closing this then? And the associated issue if this is the expected behavior?

yes