fix bfill, ffill and pad when calling with df.interpolate with column…
… dtype string (#33956)

- [x] closes #33956 
- [x] closes #12918 
- [x] closes #29146 
- [x] tests added / passed
- [x] passes `black pandas`
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`
- [x] whatsnew entry
xref #12918 maybe the tests could test for equality with either DataFrame.ffill or DataFrame.fillna(method='ffill) and update the DataFrame.interpolate docstring, see https://github.com/pandas-dev/pandas/issues/12918#issuecomment-211424101 and https://github.com/pandas-dev/pandas/issues/12918#issuecomment-419425660  can you merge master > xref #12918 maybe the tests could test for equality with either DataFrame.ffill or DataFrame.fillna(method='ffill) and update the DataFrame.interpolate docstring, see [#12918 (comment)](https://github.com/pandas-dev/pandas/issues/12918#issuecomment-211424101) and [#12918 (comment)](https://github.com/pandas-dev/pandas/issues/12918#issuecomment-419425660)

I went to the interpolate function back and forth and I come to the conclusion that we totally should fix this first. When we want to ensure that `fillna(method='ffill')` and `interpolate(method='ffill')` behave the same way, why shouldn't we just call `fillna` inside of `interpolate` in this case?

The whole `interpolate` function looks pretty much like things have grown over time and the quick fix is prefered to the generic, clean solution (with transposing back and forth, and so on). I am working on a cleaner solution. Am curious for your feedback.

EDIT:
I found a quick solution which fixes the referenced tickets (#33956 and #12918 and #29146). I am not totally satisfied with this solution since it is adding complexity (though only a little) to an already complex code. I would still suggest that a refactoring of the total `interpolate` logic would make things much clearer. Hello @CloseChoice! Thanks for updating this PR. We checked the lines you've touched for [PEP 8](https://www.python.org/dev/peps/pep-0008) issues, and found:





There are currently no PEP 8 issues detected in this Pull Request. Cheers! :beers: 

##### Comment last updated at 2020-05-29 16:26:02 UTC > Thanks @CloseChoice for the updates, is it feasible for the fixes for #12918 and #29146 be split off into a pre-cursor PR. smaller PRs with more atomic changes are easier to review/quicker to merge. also needs a whatsnew.

Thanks for your review. Actually fixing #12918 and #29146 has the side effect of fixing #33956, since the `fillna`-methods don't have the issue described in #33956. So I don't see possibility to split this into two PRs though I totally agree with you to have small, atomic PRs. thanks @CloseChoice very nice