Series和DataFrame支持索引和元素值排序,分别用sort_index和sort_values。
Pandas用rank排名,有四种排序方法,默认使用average在相等分组中,为各个值分配平均排名值;使用min和max在相等分组中的最小和最大排名值;使用first按值在原始数据中出现顺序分配排名值。

import pandas as pd

obj = pd.Series([7, 7, 6])
obj.sort_index()
obj.sort_values()

# 平级关系:默认取排名平均值
obj.rank()
# 0 2.5
# 1 2.5
# 2 1.0
# dtype: float64

# 平级关系:取原始数据中的出现顺序分配排名
obj.rank(method='first')
# 0 2.0
# 1 3.0
# 2 1.0
# dtype: float64

# 平级关系:使用相等分组的最小排名值
obj.rank(method='min')
# 0 2.0
# 1 2.0
# 2 1.0
# dtype: float64

# 平级关系:使用相等分组的最大排名值
obj.rank(method='max')
# 0 3.0
# 1 3.0
# 2 1.0
# dtype: float64

frame = pd.DataFrame({'b':[3,1,1,2],'a':[8,4,3,7],'c':[2,7,9,4]})

# 行方向 倒序
frame.rank(axis=1, ascending=False)
# b a c
# 0 2.0 1.0 3.0
# 1 3.0 2.0 1.0
# 2 3.0 2.0 1.0
# 3 3.0 1.0 2.0