Spec-Zone.ru › pandas 2

pandas.DataFrame.nsmallest

DataFrame.nsmallest(n, columns, keep='first')[source]

Возвращает первые n строк, отсортированных по columns в порядке возрастания.

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

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

Parameters:
n:int

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

columns:list или str

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

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

В случае дубликатов значений:

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

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

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

Returns:
DataFrame

См. также

DataFrame.nlargest

Возвращает первые n строк, отсортированных по columns в порядке убывания.

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

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/2.2.2/reference/api/pandas.DataFrame.nsmallest.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API