当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.DataFrame.nsmallest用法及代码示例


用法:

DataFrame.nsmallest(n, columns, keep='first')

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

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

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

参数

nint

要检索的项目数。

columns列表或字符串

列名或要排序的名称。

keep{‘first’, ‘last’, ‘all’},默认 ‘first’

有重复值的地方:

  • first :取第一次出现。

  • last :取最后一次出现。

  • all :不要删除任何重复项,即使这意味着选择超过n 项。

返回

DataFrame

例子

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

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

要按列 “population” 和 “GDP” 中的最小值排序,我们可以像下一个示例中那样指定多个列。

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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.DataFrame.nsmallest。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。