python--常用函數編寫,排名功能


# 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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM