工作中,我们可能会遇到这样的需求:按汇总指标A列排名,指标A列值相同,则按指标B列排名
本文将通过一个小实验介绍如何使用Pandas在多个列上进行排序排名操作
实验需求: 将每个人的积分、评分汇总,并按总积分排名,总积分一致时,按总评分排名,最终结果按排名升序
1)方式1
上述方式多列排序没有问题,但多列排名报错
2)方式2
上述方式不会报错,但最终结果按()方式进行了排名,没有达到的要求
相当于实现了按总积分进行排序,若总积分相同则按照总评分排序的需求
3)方式3
上述方式可以实现按总积分进行排名,若总积分相同则按照总评分排名的需求(),需要借助辅助列进行操作
补充: rank()方法的pct参数使用
pct:返回相对排名(每个值在数据中的位置的百分比),百分比表示每个元素在数据集中的相对位置,默认False
① 通过本次小实验,结合Hive的排序函数,我们发现:
:值相同时重复,总数不变,相当于Pandas的,如
:值相同时重复,总数减少,相当于Pandas的,如
:始终按顺序排序,相当于Pandas的,如
② 另外,Pandas的函数不支持多列排名,需要通过辅助列实现;但支持多列排序