Pandas >>数据排名(rank()函数)

2021-01-16  本文已影响0人  默直

Pandas >>据排名(rank()函数)

一、基本数据
import pandas as pd
import numpy as np
data_test= pd.DataFrame([
                    ['张三',3],
                    ['张三',1],
                    ['张三',4],
                    ['李四',2],
                    ['李四',7],
                    ['李四',],
                    ['王五',6],
                    ['王五',6],
                    ['王五',7],
                    ['王五',8]
                    ],
                    columns =['name','number_1']
                    )
data_test
image.png
二、默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的
data_test['name_num_rank']=data_test.groupby('name')['number_1'].rank()
data_test
image.png
三、method参数为average时,即默认值时。
data_test['rank_average']=data_test.groupby('name')['number_1'].rank(method='average')
data_test
image.png
四、method参数为min时。
data_test['rank_min']=data_test.groupby('name')['number_1'].rank(method='min')
data_test
image.png
四、method参数为max时。
data_test['rank_max']=data_test.groupby('name')['number_1'].rank(method='max')
data_test
image.png
五、method参数为first时。
data_test['rank_first']=data_test.groupby('name')['number_1'].rank(method='first')
data_test
image.png
五、method参数为first时,na_option:对na值的处理,默认采用keep策略,即保留为nan不参与排名;na_option=“top”时,则将最小等级分配给NaN值
data_test['rank_na']=data_test.groupby('name')['number_1'].rank(method='first',na_option='top')
data_test
image.png
六、method参数为first时,na_option:对na值的处理,na_option=“bottom”时,则将最高等级分配给NaN值。
data_test['rank_na_bottom']=data_test.groupby('name')['number_1'].rank(method='first',na_option='bottom')
data_test
image.png
七、method参数为first时,na_option:对na值的处理,na_option=“bottom”时,则将最高等级分配给NaN值。 ascending:默认为True,排序规则为升序排列;当ascending=False时,排序规则为降序排列
data_test['rank_ascending']=data_test.groupby('name')['number_1'].rank(method='first',
                                                                       na_option='bottom',
                                                                       ascending=False)
data_test
image.png

好啦,就这些了~

上一篇 下一篇

猜你喜欢

热点阅读