dask.dataframe.DataFrame.nlargest

dask.dataframe.DataFrame.nlargest

DataFrame.nlargest(n=5, columns=_NoDefault.no_default, split_every=None)[源代码]

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

此文档字符串是从 pandas.core.frame.DataFrame.nlargest 复制而来的。

Dask 版本可能存在一些不一致性。

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

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

参数
n整数

要返回的行数。

标签或标签列表

要排序的列标签。

保持{‘first’, ‘last’, ‘all’}, 默认 ‘first’ (Dask 不支持)

存在重复值的地方:

  • first : 优先考虑首次出现的内容

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

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

返回
DataFrame

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

参见

DataFrame.nsmallest

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

DataFrame.sort_values

按值对 DataFrame 进行排序。

DataFrame.head

返回前 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' 时,如果最小元素有重复值,保留的元素数量可以超过 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