python pandas rank()详解

目录

1 函数原型

2 各参数的作用

1.1 axis

1.2 method

3 ascending

4 na_option

5 pct名次是否为百分数

6 实例讲解

6.1 DataFrame 原始数据

6.1 默认情况下

6.2 根据值在原数据中出现的顺序排名

6.3 为各组分配一个最小排名

6.3 为各组分配一个最大排名

6.4 为各组分配一个稠密度计算后的排名

6.5 按降序进行排名

6.6 axis参数

6.6.1 原始数据

6.6.2 默认排序 axis=0



rank方法的作用是计算出axis方向上各个data的排名(指出这些data排好序后的名次)

1 函数原型

Series.rank(axis=0,method='average',numeric_only=None,na_option='keep',ascending=True,pct=False)
该方法用来排名(名次值从1开始),它可以根据某种规则破坏平级关系,
默认情况下,让人情况下(method='average'),rank通过“为各组分配一个平均排名”的方式破坏平级关系。

2 各参数的作用

1.1 axis

axis:{0 or 'index',1 or 'columns'} default 0

即默认按沿着index方向排名

1.2 method

method:{'average','min','max','first','dense'}
指定排名时用于破坏平级关系的method选项(注:值相同的位同一个分组)

method 说明
'average' 默认:在相等分组中,为各个值分配平均排名
'min' 使用整个整个分组的最小排名
'max' 使用整个分组的最大排名
'first' 按值在原始数据中的出现顺序分配排名
'dense' 与'min'类似,但是排名每次只会增加1,即并列的数据只占据一个名次

3 ascending

是否为升序,默认为True

na_option

用于处理NaN值

na_option 说明
'keep' leave NA values where they are
'top' smallest rank if ascending
'bottom'

smallest rank if dscending

pct名次是否为百分数

 

6 实例讲解

6.1 DataFrame 原始数据

dft=pd.Series([9,-1,9,6,3,0,6])
dft
 

6.1 默认情况下

rank是通过“为各组分配一个平均排名”的方式破坏平级关系的

为各组分配一个平均排名

dft.rank()
 

笔算过程:

python pandas rank()详解_第1张图片

 

6.2 根据值在原数据中出现的顺序排名

b不为各组分配任何排名,不改变原有排名

method="first"

python pandas rank()详解_第2张图片

笔算过程:

python pandas rank()详解_第3张图片

6.3 为各组分配一个最小排名

method="min"

python pandas rank()详解_第4张图片

笔算过程:

python pandas rank()详解_第5张图片

6.3 为各组分配一个最大排名

method="dense"

python pandas rank()详解_第6张图片

笔算过程:

python pandas rank()详解_第7张图片

6.4 为各组分配一个稠密度计算后的排名

method="dense"

python pandas rank()详解_第8张图片

笔算过程:

python pandas rank()详解_第9张图片

6.5 按降序进行排名

ascending=False 默认都是升序排序

python pandas rank()详解_第10张图片

笔算过程

python pandas rank()详解_第11张图片

6.6 axis参数

6.6.1 原始数据

python pandas rank()详解_第12张图片

6.6.2 默认排序 axis=0

按索引列排序,也就是纵向每个字段的值看成一组进行排序

df2.rank()

df2.rank(axis=0)

根据上面的理解基础

分别对 

     b 列 5 7 -3 2 排序 3.0 4.0 1.0 2.0

     a列0 1 0 1   排序 1.5 3.5 1.5 3.5 

     c列-2 5 8 -3 排序 2.0 3.0 4.0 1.0

然后就输出成下面这样了

    

python pandas rank()详解_第13张图片

6.6.3 axis=1排序

这种必须是(m,n)数组

m>=1 n>1

df2.rank(axis=1)

字段行排序,也就是把每一行当成一组分别进行排序

分别对:

0 行 5 0 -2 排序 

3.0 2.0 1.0

1 行 7 1 5 排序

3.0 1.0 2.0

2 行 -3 0 8 排序

1.0 2.0 3.0

3 行 2 1 -3 排序

3.0 2.0 1.0

然后就输出成下面这样了

python pandas rank()详解_第14张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(学习爱好,pandas,rank(),python,排序,axis,method)