pandas.DataFrame.nsmallest#

DataFrame.nsmallest(n, columns, keep='first')[源代码]#

返回第一个 n 行排序依据 columns 按升序排列。

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

此方法等效于 df.sort_values(columns, ascending=True).head(n) ,但更具表现力。

参数
n集成

要检索的项目数。

columns列表或字符串

作为排序依据的一个或多个列名。

keep{‘First’,‘Last’,‘All’},默认为‘First’

其中存在重复值:

  • first :以第一个事件为例。

  • last :以最后一个事件为例。

  • all :不要丢弃任何重复项,即使这意味着选择超过 n 物品。

退货
DataFrame

参见

DataFrame.nlargest

返回第一个 n 行排序依据 columns 按降序排列。

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 选择“Popular”列中具有最小值的三行。

>>> 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' ,则保留所有重复项:

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

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

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