当前位置:   article > 正文

Pandas组内排序总结_pandas 组内排序

pandas 组内排序
import pandas as pd

df = pd.DataFrame([['A',1],['A',3],['A',2],['B',5],['B',9]], columns = ['name','score'])
  • 1
  • 2
  • 3

总体而言有三种思路:

先排序,后分组

先排序,后分组这种方法,基于一个前提,即分组不会改变组内的相对顺序。这种方法,首先采用sort_values的方法,对整个df进行排序,然后对相对字段进行group操作,并采用head方法获取每一个group中的前3行记录

df.sort_values('score', ascending = False, inplace=True)
res = df.groupby('name').head(3)
  • 1
  • 2

先分组,后排序

先分组,后排序,是通常一般人想到的思维逻辑。而对于Pandas而言,分组后的排序,可以采用apply函数来完成,且传入一个匿员函数,此时里面的x,应该对应分组后的一个dataframe

df.groupby('name').apply(lambda x: x.sort_values('score', ascending=False))
  • 1

多列排序实现

相当于直接先对name列排序,再对score列排序,这样也变相实现了分组排序的功能

df.sort_values(['name','score'], ascending = [True,False], inplace=True)
  • 1

取每个分组第一

df.groupby('name').apply(lambda x: x.sort_values('score', ascending=False).head(1))
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/161963
推荐阅读
相关标签
  

闽ICP备14008679号