pandas 中的排名是如何计算的

Kis*_*han 4 python rank pandas

我对系列的排名感到困惑。我知道排名是从系列中的最高值到最低值计算的。如果两个数字相等,则 pandas 计算数字的平均值。

在此示例中,最高值为 7。为什么我们对数字 7 的排名为 5.5,对数字 4 的排名为 1.5?

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
Run Code Online (Sandbox Code Playgroud)

小智 5

排名是这样计算的

  1. 按升序排列元素,并从最低元素的“1”开始分配排名。
Elements - 4, 4, 5, 6, 7, 7
Ranks    - 1, 2, 3, 4, 5, 6
Run Code Online (Sandbox Code Playgroud)
  1. 现在考虑重复的项目,平均出相应的排名并将平均排名分配给它们。

由于“4”重复两次,每次出现的最终排名将是 1,2 的平均值,即 1.5。以同样的方式或 7,每次出现的最终排名将是平均值 5.6,即 5.5

Elements -   4,   4,   5, 6, 7,   7
Ranks    -   1,   2,   3, 4, 5,   6
Final Rank - 1.5, 1.5, 3, 4, 5.5, 5.5
Run Code Online (Sandbox Code Playgroud)