DataFrame.nlargest(self, n, columns, keep='first') → 'DataFrame' [source]
返回按列降序排列的前n
行。
以降序返回column
中具有最大值的前n
行。未指定的列也将返回,但不用于排序。
此方法等效于 ,但性能更高。df.sort_values(columns, ascending=False).head(n)
参数: | n : 要返回的行数。 columns :标签或标签列表 要排序的列标签。 keep : 默认为 其中有重复的值: 1) first:优先处理第一次出现的事件 2) last:确定最后出现的优先顺序 3) all: 请勿丢弃任何重复项,即使这意味着 选择n个以上的项目。 0.24.0版中的新功能。 |
返回值: | DataFrame 给定列按降序排列的前n行。 |
Notes
并非所有列类型都可以使用此功能。例如,当指定带有object
或category 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