pandas groupby和排序最大值 [英] Pandas groupby and sort max values
本文介绍了 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屋!
查看全文