当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.nlargest用法及代码示例


用法:

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

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

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

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

参数

nint

要返回的行数。

columns标签或标签列表

要排序的列标签。

keep{‘first’, ‘last’, ‘all’},默认 ‘first’

有重复值的地方:

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

  • last :优先考虑最后一次出现

  • all :不要删除任何重复项,即使这意味着选择超过n 项。

返回

DataFrame

n 行按给定列按降序排列。

注意

此函数不能用于所有列类型。例如,当使用 objectcategory 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' 时,将保留所有重复项:

>>> 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

要按列 “population” 和 “GDP” 中的最大值排序,我们可以像下一个示例中那样指定多个列。

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.nlargest。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。