我正在阅读Wes McKinney撰写的用于数据分析的Python
排名按数组中有效数据点的数量从一个到多个分配排名。序列和数据帧的秩方法是可以查看的地方;默认情况下rank
通过为每个组分配平均等级来打破联系:
In [215]: obj = pd.Series([7, -5, 7, 4, 2, 0, 4])
In [216]: obj.rank()
Out[216]:
0 6.5
1 1.0
2 6.5
3 4.5
4 3.0
5 2.0
6 4.5
dtype: float64
不幸的是,我不知道这个函数做什么,我发现解释和相关文档同样令人困惑:https://pandas.pydata.org/docs/reference/api/pandas.Series.rank.html
我不能理解这个,这个函数在做什么
TL;DR
为了理解
pandas.Series.rank()
,您需要首先了解排名是什么,您可以参考Ranking-Wikipedia和Test for Rank data来清楚地理解它由于rank处理已排序的数据,请尝试先对数据进行排序
对数据进行排序后,每个值都有自己的秩,从1到n,因为
-5
是最低的值,所以它的秩是1
。0
是第二个最低值,因此它将具有秩2,2具有秩3,但4是第四个最低值,并且重复根据Series.rank documentation,有一个名为
method
的参数,它的默认值为average
,它使用平均值作为重复数据的默认值。它首先对数据进行排序,然后计算秩,最后根据秩值将输入映射到输出因此,两个4的等级为4和5,它们的
average
为4.5,同样,两个7的等级为6和7,它们的average
为6.5更新:看看这个,我已经弄明白了
-5是数组中的最小值,因此值为-5的元素的
argmin
索引(1)的秩=1.0,下一个最小值为0,因此该值的索引的秩=2.0。最后,最大值是7,但它出现了两次,因此它同时是排名第6和第7的元素,所以它的平均排名是6.5相关问题 更多 >
编程相关推荐