maxframe.dataframe.DataFrame.nlargest#

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

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

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

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

参数:
  • n (int) -- 要返回的行数。

  • columns (label or list of labels) -- 用于排序的列标签。

  • keep ({'first', 'last', 'all'}, default 'first') -- 当存在重复值时: - first :优先选择首次出现的值 - last :优先选择最后出现的值 - all :不删除任何重复项,即使这意味着选择超过 n 个项。

返回:

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

返回类型:

DataFrame

参见

DataFrame.nsmallest

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

DataFrame.sort_values

按值对 DataFrame 进行排序。

DataFrame.head

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

备注

此函数不能用于所有列类型。例如,当指定具有 objectcategory 数据类型的列时,会引发 TypeError

示例

>>> import maxframe.dataframe as md
>>> df = md.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.execute()
          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').execute()
        population      GDP alpha-2
France    65000000  2583560      FR
Italy     59000000  1937894      IT
Malta       434000    12011      MT

当使用 keep='last' 时,重复项按相反顺序处理:

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

当使用 keep='all' 时,所有重复项都会保留:

>>> df.nlargest(3, 'population', keep='all').execute()
          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']).execute()
        population      GDP alpha-2
France    65000000  2583560      FR
Italy     59000000  1937894      IT
Brunei      434000    12128      BN