【发布时间】:2021-01-01 00:21:16
【问题描述】:
我有一个像这样的 DF;
Group Name Rank Group_Sales_Total
0 A Dave 4 10
1 A Tom 2 10
2 A Sara 1 10
3 A Raul 3 10
4 B Chris 3 20
5 B John 4 20
6 B Aarti 1 20
7 B Amen 2 20
我想做的是,按每个组的每个成员各自的排名对他们进行排序,然后按他们各自的销售额对这些组进行排序。我想要的结果应该是这样的。
Group Name Rank Group_Sales_Total
0 B Aarti 1 20
1 B Amen 2 20
2 B Chris 3 20
3 B John 4 20
4 A Sara 1 10
5 A Tom 2 10
6 A Raul 3 10
7 A Dave 4 10
我能够正确地为每个组排序排序;
DF.groupby('Group').apply(pd.DataFrame.sort_values, 'Rank', ascending=True).reset_index(drop=True)
但是,当我也尝试按集团销售总额对其进行排序时,排序要么不会发生,要么会打乱排名的顺序。我尝试了以下方法;
DF.groupby('Group').apply(pd.DataFrame.sort_values, ['Rank','Group_Sales_Total'], ascending=[True, False]).reset_index(drop=True)
任何有关获得输出的帮助/见解将不胜感激。
亲切的问候
【问题讨论】:
-
@wwnde no... 我没有接受您的回答并在 cmets 中发布(根据您删除的评论)。我在您输入的同时或之前输入了它
-
没问题@wwnde,我已经删除了该评论,因为它似乎是在您回答后 1 分钟 :)
标签: pandas