32  diff

33 某列上下两行的差值

import pandas as pd
rank = [4, 16, 1, 10, 25, 15, 2, 3, 13]
score = [8.93, 4.64, 10, 6.79, 1.43, 5, 9.64, 9.29, 5.71]

df = pd.DataFrame(list(zip(rank, score)), columns=['排名', '得分'])
df.sort_values(by='排名', inplace=True)

df['得分差'] = df['得分'].diff()

df['排名差'] = df['排名'].diff()
df['得分差/排名差'] = df['得分'].diff() / df['排名'].diff()
df


# 学科n个人参与排名,排名第1得满分(10分),排名倒数第1得10/n分,排第m名得10 - (m-1)*10/n分

# 10/0.36 = 27.777 ≈ 28,即心血管内科有28个专家参与排名。
排名 得分 得分差 排名差 得分差/排名差
2 1 10.00 NaN NaN NaN
6 2 9.64 -0.36 1.0 -0.360000
7 3 9.29 -0.35 1.0 -0.350000
0 4 8.93 -0.36 1.0 -0.360000
3 10 6.79 -2.14 6.0 -0.356667
8 13 5.71 -1.08 3.0 -0.360000
5 15 5.00 -0.71 2.0 -0.355000
1 16 4.64 -0.36 1.0 -0.360000
4 25 1.43 -3.21 9.0 -0.356667