Spec-Zone.ru › pandas 0.23

pandas.DataFrame.nlargest

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

Возвращает первые строки, отсортированные по указанным столбцам в порядке убывания.

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

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

Параметры:

n : int

Количество строк для возврата.

columns : имя или список имен столбцов

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

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

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

  • first : отдавать приоритет первой(ым) строке(ам)
  • last : отдавать приоритет последней(ым) строке(ам)
Возвращает:

DataFrame

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

См. также

DataFrame.nsmallest
Возвращает первые строки, отсортированные по указанным столбцам в порядке возрастания.
DataFrame.sort_values
Сортирует DataFrame по значениям.
DataFrame.head
Возвращает первые строки без изменения порядка.

Примечания

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

Примеры

>>> df = pd.DataFrame({'a': [1, 10, 8, 10, -1],
...                    'b': list('abdce'),
...                    'c': [1.0, 2.0, np.nan, 3.0, 4.0]})
>>> df
    a  b    c
0   1  a  1.0
1  10  b  2.0
2   8  d  NaN
3  10  c  3.0
4  -1  e  4.0

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

>>> df.nlargest(3, 'a')
    a  b    c
1  10  b  2.0
3  10  c  3.0
2   8  d  NaN

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

>>> df.nlargest(3, 'a', keep='last')
    a  b    c
3  10  c  3.0
1  10  b  2.0
2   8  d  NaN

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

>>> df.nlargest(3, ['a', 'c'])
    a  b    c
3  10  c  3.0
1  10  b  2.0
2   8  d  NaN

Попытка использовать nlargest с нечисловыми типами данных приведёт к ошибке TypeError.

>>> df.nlargest(3, 'b')
Traceback (most recent call last):
TypeError: Column 'b' has dtype object, cannot use method 'nlargest'

© 2008–2012, 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/0.23.4/generated/pandas.DataFrame.nlargest.html

Spec-Zone.ru

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