Add nlargest/nsmallest for DataFrame
Closes #7359

is there an open issue in pandas for this?

can you show the usage in the top section (and maybe an example in doc-string)?
maybe also add to the docs (I think its in basics.rst)
 Issue is #7359
 @jreback added a whatsnew, doc example and docstring example
 should this have nan for values that are not the nlargest/smallest? (eg use where rather than loc)
 i'm not sure what you mean. can you give an example?
 Was thinking of the utility of this, but your impl is better / more intuitive (as it give the correct ordering, not just the subset).

so nvm.

```
In [19]: df.select_dtypes(include=[np.number]).apply(lambda x: Series.nlargest(x,3))
Out[19]: 
    a   c
1  10   2
2   8 NaN
3  11   3
4 NaN   4

In [20]: df.nlargest(3,'a')
Out[20]: 
    a  b   c
3  11  c   3
1  10  b   2
2   8  d NaN

In [21]: df.nlargest(3,'a').reindex_like(df)
Out[21]: 
    a    b   c
0 NaN  NaN NaN
1  10    b   2
2   8    d NaN
3  11    c   3
4 NaN  NaN NaN
```
 give a nice squash as well
 lemme dust off the ol' rebase
 What is the status on this?
 @cpcloud needs to update for comments
otherwise lgtm
 @jreback @jorisvandenbossche @mrocklin ok 2 merge on passing?
 lgtm. just add to API.rst as well
 @cpcloud you have some doc build failures in basics.rst (you can see it in the logs of the third travis build). Needs a `pd.` before Series and DataFrame

For the rest, lgtm!
 @jorisvandenbossche thanks!
 @cpcloud thanks!
