按列降序排序分组
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
我该怎么把分组结果按降序排序,以便得到..
2003
2002
2001
2 个回答
0
你可以用下面的方式对一个pandas数据框进行升序或降序排序:
result = df.sort(['Year'], ascending=0 )
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sort.html
3
我觉得你最好的办法是提前把数据框按降序排列好,然后在进行分组操作时传入 sort=False
,这样数据就不会被重新排序了。
In [78]: sample = sample.sort(['Year'], ascending=False)
In [79]: for s in sample.groupby(['Year'], sort=False):
...: print s[0]
...:
2003
2002
2001