pandas.DataFrame.nlargest#
- DataFrame.nlargest(n, columns, keep='first')[源代码]#
返回按 columns 降序排序的前 n 行。
返回
columns中值最大的前 n 行,按降序排列。未指定的列也会返回,但不用于排序。此方法等同于
df.sort_values(columns, ascending=False).head(n),但性能更高。- Parameters:
- nint
要返回的行数。
- columns标签或标签列表
用于排序的列标签。
- keep{‘first’, ‘last’, ‘all’},默认为 ‘first’
当存在重复值时:
first:优先考虑第一次出现的值last:优先考虑最后一次出现的值all:保留最小项的所有并列项,即使这意味着选择超过 n 项。
- Returns:
- DataFrame
按给定列的降序排列的前 n 行。
参见
DataFrame.nsmallest返回按 columns 升序排序的前 n 行。
DataFrame.sort_values按值对 DataFrame 进行排序。
DataFrame.head返回前 n 行,不重新排序。
Notes
此函数不能与所有列类型一起使用。例如,在指定具有 object 或 category 数据类型的列时,会引发
TypeError。Examples
>>> 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