精华内容
下载资源
问答
  • 2021-03-18 14:20:46

    借用网上的一个例子:

    import pandas as pd
    obj = pd.Series([7,-5,7,4,2,0,4])
    obj.rank()
    obj输出:
    0    7
    1    -5
    2    7
    3    4
    4    2
    5    0
    6    4
    
    
    从小到大排序输出:
    1    -5
    2    0
    3    2
    4    4
    5    4
    6    7
    7    7
    
    
    obj.rank()输出:
    0    6.5            obj中位置0处是7,而排序后7在6和7的位置,所以该处=(6+7)/2=6.5
    1    1.0            obj中位置1处是-5,而排序后-5在1的位置,所以该处即为1.0
    2    6.5            同上个7所述
    3    4.5            obj中位3处是4,而排序后4在4和5的位置,所以该处=(4+5)/2=4.5
    4    3.0            obj中位置4处是2,而排序后2在3的位置,所以该处即为3.0
    5    2.0            obj中位置5处是0,而排序后0在2的位置,所以该处即为2.0
    6    4.5            同上个4所述

     

    更多相关内容
  • 今天小编就为大家分享一篇python3中rank函数的用法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • pythonrank函数

    千次阅读 2021-06-06 17:44:49
    rank函数中的参数method有四个取值:无参,"min","max","first" 无参 相同排名下,取平均值进行排名 ser=pd.Series([3,2,0,3],index=list('abcd')) print(ser) ser=ser.rank() #默认为average print(ser) #输出 a...

    rank函数中的参数method有四个取值:无参,"min","max","first"

    • 无参
      相同排名下,取平均值进行排名
    ser=pd.Series([3,2,0,3],index=list('abcd'))
    print(ser)
    
    ser=ser.rank() #默认为average
    print(ser)
    
    #输出
    a    3
    b    2
    c    0
    d    3
    
    dtype: int64
    a    3.5
    b    2.0
    c    1.0
    d    3.5
    dtype: float64
    

    因为a与d的值相同,排名分别为3和4,取平均值后为(3+4)/2=3.5,所以a和b的排名为3.5。

    • min
      相同的值取较小的排名。
    ser=pd.Series([3,2,0,3],index=list('abcd'))
    print(ser)
    
    ser=ser.rank(method='min')
    print(ser)
    
    #输出
    a    3
    b    2
    c    0
    d    3
    
    dtype: int64
    a    3.0
    b    2.0
    c    1.0
    d    3.0
    dtype: float64
    

    因为a与d的值相同,排名分别为3和4,取较小的排名作为它们的排名,所以a和b的排名为3。

    • max
      相同的值取较大的排名。
    ser=pd.Series([3,2,0,3],index=list('abcd'))
    print(ser)
    
    ser=ser.rank(method='max')
    print(ser)
    
    #输出
    a    3
    b    2
    c    0
    d    3
    dtype: int64
    
    a    4.0
    b    2.0
    c    1.0
    d    4.0
    dtype: float64
    

    因为a与d的值相同,排名分别为3和4,取较大的排名作为它们的排名,所以a和b的排名为4。

    • first
      按顺序排列,不允许并列。
    ser=pd.Series([3,2,0,3],index=list('abcd'))
    print(ser)
    
    ser=ser.rank(method='first')
    print(ser)
    
    
    #输出
    a    3
    b    2
    c    0
    d    3
    dtype: int64
    a    3.0
    b    2.0
    c    1.0
    d    4.0
    dtype: float64
    

    相同的值按照出现顺序排列,先出现的值排名靠前(The first value is ranked first),不允许并列排名。

    展开全文
  • Python函数rank()

    2022-02-25 16:59:06
    函数形式: DataFrame.rank(axis=0, method='average', numeric_only=NoDefault.no_default, na_option='keep', ascending=True, pct=False) 沿轴计算数值数据等级(1到n)。默认情况下,相等的值被分配一个等级,这...

    函数形式:

    DataFrame.rank(axis=0, method='average', numeric_only=NoDefault.no_default, na_option='keep', ascending=True, pct=False)

    沿轴计算数值数据等级(1到n)。默认情况下,相等的值被分配一个等级,这个等级是这些值的等级的平均值。

    • axis:直接排名索引。
    • method:如何对具有相同值(即平局)的记录组进行排名:

                                              average:组的平均排名

                                              min:组中的最低排名

                                              max:组中的最高排名

       first:按照它们在数组中出现的顺序分配的等级

    dense:类似于“min”,但组间排名总是增加 1

    • numeric_only:对于DataFrame对象,如果设置为True,则只对数字列排序。
    • na_option:如何对NaN值进行排序。top:给NaN值分配最低等级;bottom:给NaN值赋最高等级;keep:给NaN值赋NaN
    • ascending:元素是否应该按升序排列。
    • pct:是否以百分比形式显示返回的排名。

    返回值:返回一个Series或DataFrame的值。

    来,上例子:

    >>> import pandas as pd
    >>> import numpy as np
    >>> df = pd.DataFrame(data={'Animal': ['cat', 'penguin', 'dog',
    ...                                    'spider', 'snake'],
    ...                         'Number_legs': [4, 2, 4, 8, np.nan]})
    >>> df
        Animal  Number_legs
    0      cat          4.0
    1  penguin          2.0
    2      dog          4.0
    3   spider          8.0
    4    snake          NaN

     下面的示例展示了该方法如何处理上述参数:

    • default_rank:这是不使用任何参数获得的默认行为
    • max_rank:设置方法= 'max'有相同值的记录使用最高的排名(例如:因为猫和狗都在第二和第三位,排名均为3。)
    • NA_bottom: 选择na_option = 'bottom',如果有带有NaN值的记录,它们将被放在排名的底部。

    pandas.DataFrame.rank — pandas 1.4.1 documentation

    展开全文
  • 关于Pythonrank()函数的理解

    万次阅读 多人点赞 2019-05-28 22:40:47
    刚开始学习《利用Python进行数据分析》这本书,当学习到对Serises和Dataframe进行排名的时候,有些疑惑,去网上搜索了很多关于这方面的解释,要么就是一两句带过,要么就是照搬书上的例子与结果,把我们这些刚入门的...
    刚开始学习《利用Python进行数据分析》这本书,当学习到对Serises和Dataframe进行排名的时候,有些疑惑,去网上搜索了很多关于这方面的解释,要么就是一两句带过,要么就是照搬书上的例子与结果,把我们这些刚入门的小白当成了高手,所以我打算自己认真的写一篇关于rank函数的简要解释说明。这是我第一次在CSDN上写博客,如果有不对的地方,可以留言,我会认真改正。页面做的很简单,望大家谅解。
    

    Rank()函数

    Rank也就是所说的”排名“,是指对数组从1到有效数据点总数分配名次的操作。
    默认情况下,rank通过将平均排名分配到每个组来打破平级关系:

    初始化一个序列

    import pandas as pd
    obj = pd.Series([7,-5,7,4,2,0,4])
    obj
    

    运行结果:
    0 7
    1 -5
    2 7
    3 4
    4 2
    5 0
    6 4
    dtype: int64

    执行默认rank()操作

    obj.rank()
    

    运行结果:
    0 6.5
    1 1.0
    2 6.5
    3 4.5
    4 3.0
    5 2.0
    6 4.5
    dtype: float64

    运行结果分析:

    元素索引排名
    -51#1
    05#2
    24#3
    43#4
    46#5
    70#6
    72#7

    根据上面的表格可以看出,索引0对应的元素排名为6,但是使用rank()会对排名求平均值,也就是说有N歌相同的元素,排名会相加并除以N,所以说索引0对应的元素最终排名为6.5;索引1对应的元素排名为1,所以它对应的排名值为1.0,以此类推得出上述运行结果。

    rank(method=‘first’)

    这个函数其中传入了一个参数‘first’,作用是按照值在数据中出现的次序分配排名。

    obj.rank(method='first')
    

    运行结果:
    0 6.0
    1 1.0
    2 7.0
    3 4.0
    4 3.0
    5 2.0
    6 5.0
    dtype: float64

    运行结果分析:

    元素索引排名
    -51#1
    05#2
    24#3
    43#4
    46#5
    70#6
    72#7

    结合上面的表格,我们拿索引为0的元素举例说明,可以看出索引0的排名为6,但是注意,当传入‘first’是就意味着不会对排名进行平均取值,所以即使有相同的元素,也会按照谁先出现就把谁排在前面(是不是有点像上学期间考试的成绩排名?按姓名字母排序,即使你俩分数一样)所以它对应的值为6.0,以此类推,在这里不再赘述。

    rank(method = ‘max’)

    这里method的参数变为了 max,意味着对整个组使用最大排名。

    obj.rank(method='max')
    

    运行结果:
    0 7.0
    1 1.0
    2 7.0
    3 5.0
    4 3.0
    5 2.0
    6 5.0
    dtype: float64

    运行结果分析:

    元素索引排名
    -51#1
    05#2
    24#3
    43#4
    46#5
    70#6
    72#7

    以索引为0的元素为例,它对应的元素是7,排名为6,但是它有一个和它一样的元素,排名为7,所以这里取最大的排名,也就是7,所以运行结果中索引为0对应的值为7.0,剩下的元素同理,这里不再赘述。

    rank(method = ‘min’)

    min 的意思为对整个组使用最小排名。

    obj.rank(method='min')
    

    运行结果:
    0 6.0
    1 1.0
    2 6.0
    3 4.0
    4 3.0
    5 2.0
    6 4.0
    dtype: float64

    运行结果分析:

    元素索引排名
    -51#1
    05#2
    24#3
    43#4
    46#5
    70#6
    72#7

    还是以索引为0的元素为例,它对应的值为7,排名为6,即使后面有和它值相同的元素,排名取它们其中最小的那个,所以运行结果中索引为0对应的值为6,其余元素以此类推,这里不再赘述。

    rank(ascending = False, method = ‘max’)

    这个函数相较于上面的函数,多传入了一个ascending,它的意思是”升序“的意思,这里取值为 False,意为对元素进行降序排序;而且method的值取为 max,与上面的max作用相同。

    obj.rank(ascending=False,method='max')
    

    运行结果:
    0 2.0
    1 7.0
    2 2.0
    3 4.0
    4 5.0
    5 6.0
    6 4.0
    dtype: float64

    运行结果分析:

    元素索引排名
    -51#7
    05#6
    24#5
    43#3
    46#4
    70#1
    72#2

    可以看出,与上面的表格相比,最大的变化是元素进行了降序排序,所以名次也发生了变化。我还是拿索引为0的元素拿来举例(因为它太有代表性了,所以我总是用它来说明),它现在对应的排名为6,但是这里method取的值为max,所以当有相同的元素时,取排名最大的那个,所以它的值为2.0,剩下的元素也是一样,这里不再赘述。

    rank(ascending = False, method = ‘min’)

    这个函数相较于上面的函数,method的值变为了min,与上面的min作用相同。

    obj.rank(ascending=False,method='min')
    

    运行结果:
    0 1.0
    1 7.0
    2 1.0
    3 3.0
    4 5.0
    5 6.0
    6 3.0
    dtype: float64

    运行结果分析:

    元素索引排名
    -51#7
    05#6
    24#5
    43#3
    46#4
    70#1
    72#2

    索引值为0的元素对应的排名为1,即使后面有相同的元素,取它们之中最小的排名,所以它对应的值为1.0,其余元素排名以此类推,这里不再赘述。

    DataFrame.rank()

    它会对DataFrame的0轴进行排名(不了解轴的可以去看一下Numpy中ndarray的解释),可以把DataFrame理解为一个二维数组,对0轴排名也就是按着纵向排名
    我们先初始化一个DataFrame

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

    运行结果:
    frame

    frame.rank()
    

    运行结果:
    frame.rank()
    运行结果分析:
    先对columns='b’的数据进行排名,然后对columns='a’排名,最后对column='c’进行排名,排名规则与上面的Series规则一致,这里不再赘述。

    frame.rank(axis=‘columns’)

    这里传入了一个参数 axis,它的意思是"轴"的意思,上面的那个如果括号里不加,默认是对0轴进行排名(等价于axis=0),这个参数传入的值 columns 意为对‘b’,‘a’,'c’这几个列进行排名(横向排名)。

    frame.rank(axis='columns')
    

    运行结果:
    frame.rank(axis='columns')
    运行结果分析:
    先对index=0这一行进行排名,其次对index=2排名,最后对index=3进行排名,排名规则也是和上面的一样。

    《利用Python进行数据分析》

    展开全文
  • 过sql中的row_number函数,习惯了他的方便,那么在pandas处理数据时,有没有类似的函数用来排序呢,当然也有,比如rank函数。” rank(axis=0,method='average',numeric_only=None, na_option='keep',...
  • Rank中文叫做顺序,专业叫法是”秩”。rank 表示在这个数在原来...①在scipy模块中>>> from scipy import rank>>> help(rank)Help on function rank in module numpy.core.fromnumeric:rank(a)Return the number of ...
  • rank函数在excel中尝用来实现对数据的排名,在pandas中有同样的函数来实现同样的功能,下面我们具体来学习一下。 1、rank函数主要有以下几个参数。 (1)method确定数值相等时的排名策略。有以下5种方式,后面通过...
  • DataFrame.rank(self: ~FrameOrSeries,axis=0,method: str = 'average',numeric_only: Union[bool,NoneType] = None,na_option: str = 'keep',ascending: bool = True,pct: bool = False)→ ~FrameOrSeries计算...
  • 1. 何为TS_RANK?...特意讨论该函数是因为其在挖掘信号时的使用频率还是很高的。举个例子,如果我有时间序列[1,2,3,4,5,6], 固定窗口为3,那么前两个下标由于向前回溯数据长度不足将不做运算,对...
  • rank刚开始学习《利用Python进行数据分析》这本书,当学习到对Serises和Dataframe进行排名的时候,有些疑惑,去网上搜索了很多关于这方面的解释,要么就是一两句带过,要么就是照搬书上的例子与结果,把我们这些刚...
  • 之前搜关于pandas rank()函数的帖子,好几个大哥都是照搬书,当然也有一些大神直接一顿操作+截图。我结合了书还有自己的理解,希望没有错误,也希望和我一样的新手能看懂。谢谢!!1. rank()默认情况下,rank() ...
  • python pandas rank()详解

    千次阅读 多人点赞 2019-11-14 15:41:08
    1函数原型 2 各参数的作用 1.1 axis 1.2 method 3ascending 4na_option 5pct名次是否为百分数 6 实例讲解 6.1 DataFrame 原始数据 6.1默认情况下 6.2根据值在原数据中出现的顺序排名 6.3为各组分配一个...
  • Python与Pandas:rank函数

    千次阅读 2018-12-27 14:45:43
    CSDN上看到几篇有关rank函数的介绍,都是引用了以下同一个例子:   obj = pd.Series([7,-5,7,4,2,0,4]) obj.rank() 输出为:  0 6.5 1 1.0 2 6.5 3 4.5 4 3.0 5 2.0 6 4.5 这个例子源于《利用Python进行...
  • 代码为: df['号'] = df['编号'].groupby(df['部门']).rank(axis=0, method='first') # 根据部门分组进行编号 报错信息如下: Exception in Tkinter callback Traceback (most recent call last): File "tkinter\__...
  • 当然了,如果MySQL SQL不太熟悉,可以程序来处理,比如我下面用Python 实现了rank 函数,执行结果如下:(脚本源代码最后)>>> ================================ RESTART ================================>>>...
  • 用Python解决HackerRank中的问题的实践 我的HackerRank个人资料 解决了205个挑战 使用Python Python If-Else 算术运算符 Python:除法 循环 打印功能 写一个函数 基本数据类型 清单 元组 求百分比 嵌套列表 ...
  • 大部分数据库都提供了窗体函数。比方RANK,ROW_NUMBER等等。 MySQL 这方面没有直接...这里,我MySQL 以及Python 分别实现了rank 窗体函数。原始表信息:t_girl=# \d group_concat;Table "ytt.group_concat"Column |...
  • python3中的rank函数

    千次阅读 2018-06-14 16:41:34
    obj.rank()输出为:0 6.5 1 1.0 2 6.5 3 4.5 4 3.0 5 2.0 6 4.5 dtype: float64之前一直没弄懂是啥意思 这里解释下rank 表示在这个数在原来的向量中排第几名,有相同的数,按最小排序,取平均(默认)。这里解释...
  • 读取表格,对表格内的一列进行抽取部分行进行单独排名,名次写在对应行的后面的单元格,其他未抽取的部分也同样做排名 ,名次写在对应的行的后面的一个单元格
  • '成绩':[80,70,70,40,10,60,60,50,50,40]}) #姓名长度不一样的,加个符号调整下,这该死的强迫症 data['姓名'] = data['姓名'].str.rjust(3,'〇') 一、DataFrame的正常排名 Pandas中的排名,函数rank(),使用也...
  • Python编程语言中使用较多的一个内置函数。他可以在不指定函数名称的情况下定义一些简单逻辑的函数。可以定义一个函数给变量。 二、使用方法: 语法: 在Python中,lambda的语法形式如下: lambda 参数: 表达式 ...
  • Python pandas常用函数详解

    千次阅读 2020-12-30 14:24:52
    Python pandas常用函数详解来源:中文源码网浏览: 次日期:2018年9月2日【下载文档:Python pandas常用函数详解.txt】(友情提示:右键点上行txt文档名->目标另存为)Python pandas常用函数详解 本文研究的主要是...
  • map函数使用 map(func,seq1[,seq2,…]) 将func作用于seq中每一个元素,作为一个list返回 实例:找到亚军分数 if __name__ == '__main__': n = int(input()) arr = map(int, input().split( )) arr_=sorted...
  • textrank关键词提取(python

    千次阅读 2021-04-26 18:18:50
    textrank介绍textrank是在pagerank 的基础上提出来的。PageRank对于每个网页页面都给出一个正实数,表示网页的重要程度,PageRank值越高,表示网页越重要,在互联网搜索的排序中越可能被排在前面。pagerank具体内容...
  • python实现sql窗口函数

    2021-12-03 16:00:49
    python窗口排序
  • python的几个魔法函数__repr__Python中这个__repr__函数,对应repr(object)这个函数,返回一个可以用来表示对象的可打印字符串.如果我们直接打印一个类,向下面这样class A():def __init__(self,name=None,id=1):...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,980
精华内容 7,992
关键字:

python rank函数怎么用