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