Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.nlargest方法的使用。

DataFrame.nlargest(self, n, columns, keep='first') → 'DataFrame'     [source]

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

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

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

参数

n : int

要返回的行数。

columns :标签或标签列表

要排序的列标签。

keep {'first','last','all'}

默认为'first'

其中有重复的值:

1) first:优先处理第一次出现的事件

2) last:确定最后出现的优先顺序

3) all: 请勿丢弃任何重复项,即使这意味着

选择n个以上的项目。

0.24.0版中的新功能。

返回值

DataFrame

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

Notes

并非所有列类型都可以使用此功能。例如,当指定带有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