pandas.DataFrame.nsmallest #

数据框。nsmallest ( n , columns , keep = 'first' ) [来源] #

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

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

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

参数
整数

要检索的项目数。

列列表或字符串

列名或排序依据的名称。

保留{'first', 'last', 'all'}, 默认 'first'

如果存在重复值:

  • first: 取第一个出现的地方。

  • last: 取最后一次出现的位置。

  • all:保留最大项目的所有关系,即使这意味着选择多个n项目。

返回
数据框

也可以看看

DataFrame.nlargest

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

DataFrame.sort_values

按值对 DataFrame 进行排序。

DataFrame.head

返回前n行而不重新排序。

例子

>>> 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

要按“人口”列中的最小值排序,然后按“GDP”列中的最小值排序,我们可以指定多个列,如下例所示。

>>> df.nsmallest(3, ['population', 'GDP'])
          population  GDP alpha-2
Tuvalu         11300   38      TV
Anguilla       11300  311      AI
Nauru         337000  182      NR