pandas.DataFrame.nlargest#

DataFrame.nlargest(n, столбцы, keep='first')[источник]#

Вернуть первый n строки, упорядоченные по столбцы в порядке убывания.

Вернуть первый n строки с наибольшими значениями в столбцыв порядке убывания. Столбцы, которые не указаны, также возвращаются, но не используются для упорядочивания.

Этот метод эквивалентен df.sort_values(columns, ascending=False).head(n), но более производительный.

Параметры:
nint

Количество возвращаемых строк.

столбцыметка или список меток

Метка(и) столбца для сортировки.

keep{‘first’, ‘last’, ‘all’}, по умолчанию ‘first’

В случаях, когда есть повторяющиеся значения:

  • first : отдавать приоритет первому вхождению(ям)

  • last : приоритет последнего вхождения(ий)

  • all : сохранять все связи наименьшего элемента, даже если это означает выбор более чем n элементы.

Возвращает:
DataFrame

Первый n строки упорядочены по заданным столбцам в порядке убывания.

Смотрите также

DataFrame.nsmallest

Вернуть первый n строки, упорядоченные по столбцы в порядке возрастания.

DataFrame.sort_values

Сортировка DataFrame по значениям.

DataFrame.head

Вернуть первый n строки без переупорядочивания.

Примечания

Эта функция не может использоваться со всеми типами столбцов. Например, при указании столбцов с object или категория типы данных, TypeError вызывается.

Примеры

>>> df = pd.DataFrame({'population': [59000000, 65000000, 434000,
...                                   434000, 434000, 337000, 11300,
...                                   11300, 11300],
...                    'GDP': [1937894, 2583560 , 12011, 4520, 12128,
...                            17036, 182, 38, 311],
...                    'alpha-2': ["IT", "FR", "MT", "MV", "BN",
...                                "IS", "NR", "TV", "AI"]},
...                   index=["Italy", "France", "Malta",
...                          "Maldives", "Brunei", "Iceland",
...                          "Nauru", "Tuvalu", "Anguilla"])
>>> df
          population      GDP alpha-2
Italy       59000000  1937894      IT
France      65000000  2583560      FR
Malta         434000    12011      MT
Maldives      434000     4520      MV
Brunei        434000    12128      BN
Iceland       337000    17036      IS
Nauru          11300      182      NR
Tuvalu         11300       38      TV
Anguilla       11300      311      AI

В следующем примере мы будем использовать nlargest для выбора трех строк с наибольшими значениями в столбце "population".

>>> df.nlargest(3, 'population')
        population      GDP alpha-2
France    65000000  2583560      FR
Italy     59000000  1937894      IT
Malta       434000    12011      MT

При использовании keep='last', связи разрешаются в обратном порядке:

>>> df.nlargest(3, 'population', keep='last')
        population      GDP alpha-2
France    65000000  2583560      FR
Italy     59000000  1937894      IT
Brunei      434000    12128      BN

При использовании keep='all', количество сохраняемых элементов может превышать n если есть повторяющиеся значения для наименьшего элемента, все совпадения сохраняются:

>>> df.nlargest(3, 'population', keep='all')
          population      GDP alpha-2
France      65000000  2583560      FR
Italy       59000000  1937894      IT
Malta         434000    12011      MT
Maldives      434000     4520      MV
Brunei        434000    12128      BN

Однако, nlargest не сохраняет n различные наибольшие элементы:

>>> df.nlargest(5, 'population', keep='all')
          population      GDP alpha-2
France      65000000  2583560      FR
Italy       59000000  1937894      IT
Malta         434000    12011      MT
Maldives      434000     4520      MV
Brunei        434000    12128      BN

Чтобы отсортировать по наибольшим значениям в столбце «population», а затем «GDP», мы можем указать несколько столбцов, как в следующем примере.

>>> df.nlargest(3, ['population', 'GDP'])
        population      GDP alpha-2
France    65000000  2583560      FR
Italy     59000000  1937894      IT
Brunei      434000    12128      BN