pandas.DataFrame.nlargest #

数据框。nlargest ( n , columns , keep = 'first' ) [来源] #

返回按列降序排列的前n行。

按降序返回columns中具有最大值的前n行。未指定的列也会返回,但不用于排序。

此方法与 等效 ,但性能更高。df.sort_values(columns, ascending=False).head(n)

参数
整数

要返回的行数。

列标签或标签列表

排序依据的列标签。

保留{'first', 'last', 'all'}, 默认 'first'

如果存在重复值:

  • first:优先考虑第一次出现的情况

  • last:优先考虑最后出现的情况

  • all:保留最小项目的所有联系,即使这意味着选择多个n项目。

返回
数据框

n行按给定列降序排列。

也可以看看

DataFrame.nsmallest

返回按升序排列的前n行。

DataFrame.sort_values

按值对 DataFrame 进行排序。

DataFrame.head

返回前n行而不重新排序。

笔记

此函数不能用于所有列类型。例如,当指定具有对象类别dtypes 的列时,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

要按“人口”列中的最大值排序,然后按“GDP”列中的最大值排序,我们可以指定多个列,如下例所示。

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