CI: Drop Python 3.5 support
- [X] closes #29034
- [ ] tests added / passed
- [ ] passes `black pandas`
- [ ] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [ ] whatsnew entry

I suggest leave it to community for follow ups as they are kind of easy to do. I can think of issues to:

  1. Rip out any Py35 compat
  2. Replace OrderedDict with just dict (maybe?)
  3. Convert annotation comments to 36 inline syntax
  4. Use f-strings instead of .format (maybe?)
 SGTM.

On Thu, Oct 24, 2019 at 2:22 PM William Ayd <notifications@github.com>
wrote:

> I suggest leave it to community for follow ups as they are kind of easy to
> do. I can think of issues to:
>
>    1. Rip out any Py35 compat
>    2. Replace OrderedDict with just dict (maybe?)
>    3. Convert annotation comments to 36 inline syntax
>
> —
> You are receiving this because you commented.
> Reply to this email directly, view it on GitHub
> <https://github.com/pandas-dev/pandas/pull/29212?email_source=notifications&email_token=AAKAOITYTX4Q6EL7CXGFCG3QQHYYXA5CNFSM4JEYZLM2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOECGEXQY#issuecomment-546065347>,
> or unsubscribe
> <https://github.com/notifications/unsubscribe-auth/AAKAOISFLC7MNDF5IEVCOP3QQHYYXANCNFSM4JEYZLMQ>
> .
>
 @datapythonista : For the MacOS build (`ci/deps/azure-macos-35.yaml → ci/deps/azure-macos-36.yaml`), I think you need to re-specify the Python version to `3.6.*`. Thanks for the review and the comments @TomAugspurger and @gfyoung , addressed them.

Good point @WillAyd, I included 1 here, but makes sense to create issues for 2 and 3, and not sure if we could create some for f-strings too. We don't want to get crazy with that, but in many cases that can be a nice clean up. Not sure on the 36 failure here but I think @TomAugspurger cleaned up the solvability of the environment. Merge master and try again? Seems like Python 3.6 has something (I guess a bug) causing the error `TypeError: only integer scalar arrays can be converted to a scalar index` when converting strings to bytes in some of our cases.

Checked locally, and seems like tests pass again in Python 3.6.1. Updated this PR, so the minimum supported version of Python is 3.6.1. Interesting. Not totally against it, though I wonder if we should also up our minimum numpy version as part of this. 

Per NEP 29 I think they only support 1.15 with Python 3.6:

https://numpy.org/neps/nep-0029-deprecation_policy.html

So maybe worth bumping from 13.3 to that instead? I don't have an opinion on bumping numpy version. But I think this PR is complex enough, and dropping old numpy versions is unrelated to this. I'd discuss and implement that separately.

NEP-29 is recent. Not sure when Python 3.5 is expected to be dropped by numpy based on it, but 1.15 supports even Python 3.4. thanks @datapythonista very nice!

very small comment for possible followup.

Also would take a bump in numpy version I think we can go to min 1.15, but open an issue for it first.