pandas.DataFrame.nsmallest#
- DataFrame.nsmallest(n, columns, keep='first')[源代码]#
返回按 columns 升序排序的前 n 行。
返回
columns中值最小的前 n 行,按升序排列。未指定的列也会返回,但不用于排序。此方法等同于
df.sort_values(columns, ascending=True).head(n),但性能更高。- Parameters:
- nint
要检索的项目数。
- columns列表或字符串
用于排序的列名。
- keep{‘first’, ‘last’, ‘all’},默认为 ‘first’
当存在重复值时:
first:选择第一次出现的值。last: 获取最后出现的。all: 保留最大的项的所有并列项,即使这意味着选择超过n个项。
- Returns:
- DataFrame
参见
DataFrame.nlargest返回按 columns 降序排序的前 n 行。
DataFrame.sort_values按值对 DataFrame 进行排序。
DataFrame.head返回前 n 行,不重新排序。
Examples
>>> df = pd.DataFrame({'population': [59000000, 65000000, 434000, ... 434000, 434000, 337000, 337000, ... 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 337000 182 NR Tuvalu 11300 38 TV Anguilla 11300 311 AI
在下面的示例中,我们将
nsmallest用于选择 “population” 列中值最小的三行。>>> df.nsmallest(3, 'population') population GDP alpha-2 Tuvalu 11300 38 TV Anguilla 11300 311 AI Iceland 337000 17036 IS
使用
keep='last'时,并列项按相反的顺序解析:>>> df.nsmallest(3, 'population', keep='last') population GDP alpha-2 Anguilla 11300 311 AI Tuvalu 11300 38 TV Nauru 337000 182 NR
当使用
keep='all'时,如果最大的元素有重复的值,保留的元素数量可能会超过n,所有并列项都会被保留。>>> df.nsmallest(3, 'population', keep='all') population GDP alpha-2 Tuvalu 11300 38 TV Anguilla 11300 311 AI Iceland 337000 17036 IS Nauru 337000 182 NR
然而,
nsmallest不会保留n个不同的最小元素:>>> df.nsmallest(4, 'population', keep='all') population GDP alpha-2 Tuvalu 11300 38 TV Anguilla 11300 311 AI Iceland 337000 17036 IS Nauru 337000 182 NR
要按 “population” 列的最小值然后是 “GDP” 列的最小值进行排序,我们可以指定多个列,如下例所示。
>>> df.nsmallest(3, ['population', 'GDP']) population GDP alpha-2 Tuvalu 11300 38 TV Anguilla 11300 311 AI Nauru 337000 182 NR