我搞不懂序列的秩。我知道秩是从序列中的最高值到最低值来计算的。如果两个数字相等,那么熊猫会计算这些数字的平均值
In this example,the highest value is 7.why do we get rank 5.5 for number 7 and rank 1.5 for number 4
S1 = pd.Series([7,6,7,5,4,4])
S1.rank()
Output:
0 5.5
1 4.0
2 5.5
3 3.0
4 1.5
5 1.5
dtype: float64
Tags:
正如Joachim所评论的,
rank
函数接受一个参数method
,默认值为'average'
。也就是说,最终秩是相同值的所有秩的平均值根据该文件,
method
的其他选项包括:例如,让我们试试:
method='dense'
,然后S1.rank(method='dense')
给出:这在某种程度上相当于
factorize
更新:根据您的问题,让我们尝试编写一个行为类似于
S1.rank()
的函数:如果希望最大排名,则执行默认排名,如下所示
这里是熊猫支持的所有等级
方法:{'average','min','max','first','dense'},默认值为'average'
排名是这样计算的
由于“4”重复两次,因此每次事件的最终排名将为1,2的平均值,即1.5。 以相同的方式或7,每次事件的最终排名平均为5,6,即5.5
相关问题 更多 >
编程相关推荐