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 到 n)。
默认情况下,对于具有相同值的元素,分配它们对应排名的平均值作为最终排名。
参数:  | axis:{ 直接排名的索引。 method: 
 默认为 如何对具有相同值(即ties)的记录组进行排名: 1)  2)  3)  4)  5)  
 对于DataFrame对象,如果设置为True, 则仅对数字列进行排名。 na_option: 默认为 如何对 1)  2)  3)  ascending: 元素是否应该按升序排列。 pct: 是否以百分比形式显示返回的排名。  | 
返回值:  | 与调用者相同的类型 返回以数据等级作为值的  | 
例子
1)基本使用(按列排名)
import pandas as pd
df = pd.DataFrame({
    'math': [90, 80, 80, 70],
    'english': [88, 90, 85, 70]
})
print(df.rank())
2)使用不同 method 策略
import pandas as pd
df = pd.DataFrame({
    'math': [90, 80, 80, 70],
    'english': [88, 90, 85, 70]
})
print(df.rank(method='min'))3)按行排名
import pandas as pd
df = pd.DataFrame({
    'math': [90, 80, 80, 70],
    'english': [88, 90, 85, 70]
})
print(df.rank(axis=1))4)返回百分比排名
import pandas as pd
df = pd.DataFrame({
    'math': [90, 80, 80, 70],
    'english': [88, 90, 85, 70]
})
print(df.rank(pct=True))5)rank() 方法各种用法对比
使用上述参数的方法的行为:
- default_rank:这是不使用任何参数而获得的默认行为。
 - max_rank:设置
method = 'max'具有相同值的记录将使用最高排名进行排名(例如:由于'cat'和'dog'都位于第二和第三位置,因此分配了rank 3。) - NA_bottom:选择
na_option = 'bottom',如果存在具有NaN值的记录,则将它们放在排名的底部。 - pct_rank:设置
pct = True时,排名以百分等级表示。 
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
    'Animal': ['cat', 'penguin', 'dog', 'spider', 'snake'],
    'Number_legs': [4, 2, 4, 8, np.nan]
})
# 不同 ranking 设置的列
# 默认:method='average'
df['default_rank'] = df['Number_legs'].rank() 
# 并列时取最大名次
df['max_rank'] = df['Number_legs'].rank(method='max')  
# NaN 作为最大名次处理
df['NA_bottom'] = df['Number_legs'].rank(na_option='bottom')  
# 返回排名百分比
df['pct_rank'] = df['Number_legs'].rank(pct=True)  
# 打印结果
print(df)