Pandas DataFrame | nlargest method
Start your free 7-days trial now!
Pandas DataFrame.nlargest(~)
method returns n
rows with the largest value in the specified columns. The returned rows are sorted in descending order.
Parameters
1. n
link | int
The number of rows you want returned.
2. columns
link | string
or list
of strings
The label of the columns you want to order by.
3. keep
link | string
| optional
How to handle duplicate values in the edge cases. Edge cases arise, for instance, if you select n=3
, and the values are [1,2,2,2]
.
Value | How to deal with duplicate values at edge cases |
---|---|
| Keep the first occurrence(s). |
| Keep the last occurrence(s). |
| Keep all the occurrences. |
For "all"
, the number of returned rows may exceed n
. By default, keep="first"
.
Return Value
A DataFrame
with n
rows that have the largest value in the specified columns, in descending order.
Examples
Basic usage
Consider the following DataFrame:
df = pd.DataFrame({"A":[1,4,6], "B":[3,8,8]})df
A B0 1 31 4 82 6 8
To get the top 2
rows with the highest value for column A
:
df.nlargest(2, "A")
A B2 6 81 4 8
Notice how the returned rows are sorted in descending order of the values in A
.
Dealing with duplicate values
Consider the same df
as above:
df
A B0 1 31 4 82 6 8
Keeping only the first
By default, keep="first"
, which means that the first occurrence of the row with the largest column value is returned:
df.nlargest(1, "B") # keep="first"
A B1 4 8
Notice how row 1
was returned, as opposed to row 2
, despite the fact that they both had the same value (8
) for column B
.
Keeping only the last
To get the last occurrence instead, set keep="last"
:
df.nlargest(1, "B", keep="last")
A B2 6 8
Keeping all occurrences
To keep both the occurrences, set keep="all"
:
df.nlargest(1, "B", keep="all")
A B1 6 82 4 8
Notice how despite the fact that we set n=1
, we end up with 2 rows.