ENH: make Series.ptp ignore NaN values (GH11163)
Closes [GH11163](https://github.com/pydata/pandas/issues/11163).

`Series.ptp` will now ignore missing values when calculating the peak to peak difference.

actually what I would is define this using `generic.py/_make_stat_function` (e.g. how `.min` and such are defined). though this would only apply to `Series` (so might need to move a couple of things around to deal with this).
 Ah OK - no problem, I should be able to take a look at this and update in the next week or so.
 can you update
 Apologies - the past few weeks have been much busier than I'd anticipated. I hope to get back to update this very soon.
 no prob.
 @ajcr progress?
 @ajcr pls update when you can
 @jreback: my apologies for the delay once again, I've just got back and was  looking at this again just now.

As I understand it, I need to do the following:
- make a `nanptp` function in nanops.py (is implementing this as `nanmax - nanmin` sufficient?)
- add an entry for `ptp` to `_make_stat_function` in generic.py
- make sure that this doesn't become a method of DataFrame - i.e. retrict it to Series

The last part I'm not quite sure how to do best, because NDFrame is a parent class of both Series and DataFrame. Are there any other methods from NDFrame that are restricted to one or the other object in this way?
 you don't really need to do step 1, simply define it in `_make_stat_function` to do this (as its sort of a trivial function)

if you look at the end of `core/series.py` there is a like `Series._add_numeric_operations()`, (and in `DataFrame`), so you just need to tag certain of these functions to be added only on certain classes. 
 @jreback: made some changes and things are now green - let me know if you'd like me to improve anything or make any other changes.
 thanks!
 No problem (sorry it took a while) - thanks for your guidance!
