Pandas —— rank( )函数进行排名

rank( )

rank函数返回从小到大排序的下标

1、默认情况下,rank是通过“为各组分配一个平均排名”的方式破坏平级关系的

In [120]:obj = pd.Series([7,-5,7,4,2,0,4])
In [121]:obj.rank()
Out [121]:
0    6.5
1    1.0
2    6.5
3    4.5
4    3.0
5    2.0
6    4.5
dtype: float64

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

In [122]:obj.rank(method='first')
Out [122]:
0    6.0
1    1.0
2    7.0
3    4.0
4    3.0
5    2.0
6    5.0
dtype: float64

3、按降序进行排名

In [123]:obj.rank(ascending=False, method='max')
Out [123]:
0    2.0
1    7.0
2    2.0
3    4.0
4    5.0
5    6.0
6    4.0
dtype: float64

4、若对DataFrame进行排序,则可根据axis指定要进行排序的轴

In [136]: frame=pd.DataFrame({'b':[5,7,-3,2],'a':[0,1,0,1],'c':[-2,5,8,-3]})

In [137]: frame
Out[137]:
   a  b  c
0  0  5 -2
1  1  7  5
2  0 -3  8
3  1  2 -3

In [138]: frame.rank(axis=0)
Out[138]:
     a    b    c
0  1.5  3.0  2.0
1  3.5  4.0  3.0
2  1.5  1.0  4.0
3  3.5  2.0  1.0

In [139]: frame.rank(axis=1)
Out[139]:
     a    b    c
0  2.0  3.0  1.0
1  1.0  3.0  2.0
2  2.0  1.0  3.0
3  2.0  3.0  1.0

method方法的选项

TablesAre
average默认:在相等分组中,为各个值分配平均排名
min使用整个分组的最小排名
max使用整个分组的最大排名
first按值在原始数据中的出现顺序分配排名

转载地址:

《利用Python进行数据分析》

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Pandas中的`rank()`函数用于对DataFrame或Series中的数据进行排名。它可以根据指定的排序规则对数据进行排名,并返回一个新的排名序列。 `rank()`函数的基本语法如下: ```python pandas.Series.rank(method='average', ascending=True, na_option='keep', gap=0) pandas.DataFrame.rank(method='average', subset=None, axis=0, na_option='keep', gap) ``` 参数说明: * `method`:可选参数,用于指定排名的方式。默认值为'average',表示平均排名。其他可选值包括'min'(最小值排名)、'max'(最大值排名)、'dense'(等差排名,类似于Excel中的常规排名)等。 * `ascending`:可选参数,用于指定是否按照升序排列进行排名。默认值为True,表示按照升序排列进行排名。如果设置为False,则按照降序排列进行排名。 * `na_option`:可选参数,用于指定如何处理缺失值(NaN)。默认值为'keep',表示保留缺失值的位置。其他可选值包括'drop'(忽略缺失值的位置)和'nsmall+nlarge'(根据缺失值的位置选择不同的排名方式)。 * `gap`:可选参数,用于指定相邻排名之间的间隔。默认值为0,表示相邻排名之间没有间隔。 使用示例: 假设我们有一个包含数值的DataFrame,我们想要按照升序排列对其进行排名: ```python import pandas as pd data = {'name': ['Alice', 'Bob', 'Charlie', 'David'], 'score': [85, 90, 70, 95]} df = pd.DataFrame(data) # 对score列进行升序排名 df['score_rank'] = df['score'].rank(ascending=True) print(df) ``` 输出结果为: ```python name score score_rank 0 Alice 85 3.0 1 Bob 90 2.0 2 Charlie 70 1.0 3 David 95 4.0 ``` 可以看到,`rank()`函数按照升序排列对分数进行排名,并返回了一个新的列`score_rank`。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值