pandas groupby和排序最大值 [英] Pandas groupby and sort max values

查看:63
本文介绍了 pandas groupby和排序最大值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在 pandas df 中对两个 Columns 进行分组,并返回 max 值.然后,我希望针对相同的 Columns 对这些 max 值进行排序.

I am trying to groupby two Columns in a pandas df and return the max value. I'm then hoping to sort these max values in relation to the same Columns.

这是我的尝试:

将熊猫作为pd导入

d = ({
'year' : ['2016','2016','2016','2016','2016','2015','2015','2015','2015','2014','2014','2014','2014'],        
    'Val' : ['A','B','D','T','S','D','T','T','U','T','T','V','C'],                 
    'Num' : [1,2,4,5,3,6,4,3,2,5,6,1,2],                                     
    })

df = pd.DataFrame(data = d)

df = df.groupby(['year','Val']).Num.max()

输出:

year  Val
2014  C      2
      T      6
      V      1
2015  D      6
      T      4
      U      2
2016  A      1
      B      2
      D      4
      S      3
      T      5

我已经尝试过产生以下内容

I have tried this to produce the following

df = df.sort_values(['year','Num'], ascending=False)

预期输出:

year  Val
2014  T      6
      C      2
      V      1
2015  D      6
      T      4
      U      2
2016  T      5
      D      4
      S      3
      B      2
      A      1

推荐答案

因此,您需要 groupby transform sort_values

df.groupby('year').transform(pd.Series.sort_values,ascending=False)
Out[42]: 
year  Val
2014  C      6
      T      2
      V      1
2015  D      6
      T      4
      U      2
2016  A      5
      B      4
      D      3
      S      2
      T      1
Name: Num, dtype: int64

这篇关于 pandas groupby和排序最大值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆