yeran666
# coding:utf-8
# author by: acrossyao
# Python 3.7.9
import pandas as pd
def rank_by_list_res(listname,ascending=False,method=\'min\'):
    \'\'\'
    对列表中的数据排名
    :param listname:list,列表名字
    :param ascending:bool,降序排明,数字越大,排名越靠前
    :param method:string,使用组内最小排名,默认min
    :return:返回排名列表
    \'\'\'
    b = pd.Series(a)
    rank = b.rank(ascending=ascending, method=method).tolist()
    rs = map(int,rank)
    return rs

#测试demo
if __name__ == \'__main__\':
    a = [6, 1, 8, 90, 1, 23, 4]
    #降序排名,取组内最小的排名
    rs1 = rank_by_list_res(a)
    print(list(rs1))

    #降序排名,取组内最大的排名
    rs2 = rank_by_list_res(a,False,\'max\')
    print(list(rs2))

    # 升序排名,取组内最小的排名
    rs3 = rank_by_list_res(a, True)
    print(list(rs3))

    # 降序排名,取组内最大的排名
    rs4 = rank_by_list_res(a, True, \'max\')
    print(list(rs4))
 

  

测试用例运行结果:

tips:最近在写python对excel的数据处理中,汇总求和之后,需要对求和列排名,(在excel中使用rank()就可以)
      然后就对python中的rank()函数做了简单封装 
      对python中rank()的理解参考:https://www.jb51.net/article/175251.htm

 

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2021-07-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
猜你喜欢
  • 2021-11-25
  • 2022-12-23
  • 2021-09-22
  • 2021-09-29
  • 2021-06-29
  • 2021-10-18
  • 2022-12-23
相关资源
相似解决方案