Python pandas.DataFrame.rank函数方法的使用

Pandas是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。本文主要介绍一下Pandas中pandas.DataFrame.rank方法的使用。

DataFrame.rank(self: ~FrameOrSeries, axis=0, method: str = 'average', numeric_only: Union[bool, NoneType] = None, na_option: str = 'keep', ascending: bool = True, pct: bool = False) → ~FrameOrSeries

计算沿轴的数值数据等级(1到n)。

默认情况下,为相等的值分配一个等级,该等级是这些值的等级的平均值。

参数:

axis:{0'index'1'columns'},默认0

直接排名的索引。

method{'average','min','max','first','dense'}

默认为'average'

如何对具有相同值(即ties)的记录组进行排名:

1) average:组的平均等级

2) min:组中最低的排名

3) max:组中最高等级

4) first : 按排列顺序排列,依次排列

5) dense:类似于 ‘min’,但组之间的排名始终提高1

numeric_onlybool, 可选

对于DataFrame对象,如果设置为True,

则仅对数字列进行排名。

na_option{'keep','top','bottom'}

默认为'keep'

如何对NaN值进行排名:

1) keep:将NaN等级分配给NaN值

2) top:如果升序,则将最小等级分配给NaN值

3) bottom:如果升序,则将最高等级分配给NaN值。

ascendingbool,默认为True

元素是否应该按升序排列。

pct:bool,默认为False

是否以百分比形式显示返回的排名。

返回值:

与调用者相同的类型

返回以数据等级作为值的SeriesDataFrame

例子

>>> df = pd.DataFrame(data={'Animal': ['cat', 'penguin', 'dog',
...                                    'spider', 'snake'],
...                         'Number_legs': [4, 2, 4, 8, np.nan]})
>>> df
    Animal  Number_legs
0      cat          4.0
1  penguin          2.0
2      dog          4.0
3   spider          8.0
4    snake          NaN

以下示例显示了使用上述参数的方法的行为:

  • default_rank:这是不使用任何参数而获得的默认行为。
  • max_rank:设置method = 'max'具有相同值的记录将使用最高排名进行排名(例如:由于'cat''dog'都位于第二和第三位置,因此分配了rank 3。)
  • NA_bottom:选择na_option = 'bottom',如果存在具有NaN值的记录,则将它们放在排名的底部。
  • pct_rank:设置pct = True时,排名以百分等级表示。

>>> df['default_rank'] = df['Number_legs'].rank()
>>> df['max_rank'] = df['Number_legs'].rank(method='max')
>>> df['NA_bottom'] = df['Number_legs'].rank(na_option='bottom')
>>> df['pct_rank'] = df['Number_legs'].rank(pct=True)
>>> df
    Animal  Number_legs  default_rank  max_rank  NA_bottom  pct_rank
0      cat          4.0           2.5       3.0        2.5     0.625
1  penguin          2.0           1.0       1.0        1.0     0.250
2      dog          4.0           2.5       3.0        2.5     0.625
3   spider          8.0           4.0       4.0        4.0     1.000
4    snake          NaN           NaN       NaN        5.0       NaN

推荐阅读
cjavapy编程之路首页