sort groupby列降序

时间:2014-08-28 16:35:29

标签: python pandas

sample = pd.DataFrame({'Cat':['A','B','C','A','B','C','A','B','C'], 
                       'Year':[2001,2002,2003,2001,2002,2003,2001,2002,2003]})

for s in sample.groupby(['Year']):
    print s[0]

那会给出

2001
2002
2003

如何按降序对groupby结果进行排序以获取..

2003
2002
2001

2 个答案:

答案 0 :(得分:2)

我认为您最好的选择是提前对帧进行排序,并将sort=False传递给groupby操作,以便数据不会重新排序。

In [78]: sample = sample.sort(['Year'], ascending=False)

In [79]: for s in sample.groupby(['Year'], sort=False):
    ...:     print s[0]
    ...:     
2003
2002
2001

答案 1 :(得分:0)

您可以按升序和降序对pandas数据框进行排序,如下所示:

result = df.sort(['Year'], ascending=0 )

http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort.html