Vectorize DataFrame `first_valid_index()` and `last_valid_index()`
Is there a reason why `DataFrame` `first_valid_index()` and `last_valid_index()` don't return a Series with the first/last valid index for each column?  It seems a little inconsistent with the rest of the API, and working around it isn't straightfoward.

This wouldn't be so bad if `df.apply('first_valid_index')` actually applied to each column, but it does not.  And finally, `df.apply(lambda c: c.first_valid_index())` only works on DataFrame, but not Series, so there is no way to generically vectorize / broadcast it yourself without type introspection.

I recognize the API is frozen now, but either a parameter or new functions that do the helpful and unsurprising thing would be nice.