我们如何根据一列对数据帧进行分组,根据另一列生成值(比如说平均值),并最终对这些值进行排序,以便根据平均值(降序)对整体分组进行排序,并在根据平均值(降序)排序的组内进行排序,但是对于相等值,则根据第一列按字母顺序排序(升序)? 例如:假设我们有一个参与者姓名及其在不同活动中的分数的数据框架。我想首先按参与者姓名分组,生成分数的平均值。根据平均值对该组进行降序排序。对于平均值相等的情况,请根据其名称升序排序
DF:
name task score
User1 task1 3
User2 task2 8
User3 task3 7
User4 task4 7
User5 task5 8
User6 task6 8
User7 task7 2
User8 task8 7
User9 task9 6
User10 task10 1
User1 task11 5
User2 task12 7
User3 task13 1
User4 task14 8
User5 task15 0
User6 task16 2
User7 task17 8
User8 task18 1
User9 task19 3
User10 task20 4
Out:
Name mean_score
User2 7.5
User4 7.5
User6 5
User7 5
User9 4.5
User1 4
User3 4
User5 4
User8 4
User10 2.5
注:生成的平均分数按降序排序,对于等值用户名,按字母升序排序
我的代码:
top = df_tasks.groupby(['name'],as_index=False)['score'].mean().sort_values(by=['score'],axis=0,ascending=False,inplace=False)
给我以下信息:
name mean_score
User2 7.5
User4 7.5
User7 5
User6 5
User9 4.5
User8 4
User3 4
User1 4
User5 4
User10 2.5
按名称对该输出进行排序会影响基于分数的排序。我做错了什么
试试这个:
相关问题 更多 >
编程相关推荐