pandas.DataFrame.nsmallest#

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

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

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

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

Параметры:
nint

Количество элементов для извлечения.

столбцыlist или str

Имя столбца или имена для упорядочивания.

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

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

  • first : взять первое вхождение.

  • last : возьмите последнее вхождение.

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

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

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

DataFrame.nlargest

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

DataFrame.sort_values

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

DataFrame.head

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

Примеры

>>> df = pd.DataFrame({'population': [59000000, 65000000, 434000,
...                                   434000, 434000, 337000, 337000,
...                                   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         337000      182      NR
Tuvalu         11300       38      TV
Anguilla       11300      311      AI

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

>>> df.nsmallest(3, 'population')
          population    GDP alpha-2
Tuvalu         11300     38      TV
Anguilla       11300    311      AI
Iceland       337000  17036      IS

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

>>> df.nsmallest(3, 'population', keep='last')
          population  GDP alpha-2
Anguilla       11300  311      AI
Tuvalu         11300   38      TV
Nauru         337000  182      NR

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

>>> df.nsmallest(3, 'population', keep='all')
          population    GDP alpha-2
Tuvalu         11300     38      TV
Anguilla       11300    311      AI
Iceland       337000  17036      IS
Nauru         337000    182      NR

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

>>> df.nsmallest(4, 'population', keep='all')
          population    GDP alpha-2
Tuvalu         11300     38      TV
Anguilla       11300    311      AI
Iceland       337000  17036      IS
Nauru         337000    182      NR

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

>>> df.nsmallest(3, ['population', 'GDP'])
          population  GDP alpha-2
Tuvalu         11300   38      TV
Anguilla       11300  311      AI
Nauru         337000  182      NR