基于大熊猫的行值排序

时间:2020-04-23 20:25:00

标签: python pandas

我有一个看起来如下的数据框

df= pd.DataFrame(np.array([[1, 2, 3], [1, 5, 6], [1, 8, 9],[2, 18, 9],[3, 99, 10],[3, 0.3, 5],[2, 58, 78],[4, 8, 9]]),

                   columns=['id', 'point_A', 'point_B'])

enter image description here

现在,我想创建一个列,该列是point_Apoint_B行的总和。我可以通过以下代码来做到这一点:df["sum_of_all"] = df[["point_A","point_B"]].sum(axis = 1)

现在,我想根据sum_of_all对它们进行排序。表示最大的和为graded为1,依此类推。现在必须基于id完成,我该怎么做?

更新:

enter image description here 一旦完成求和和排序,就可以得到上面的输出。现在,我的目标是根据id分配成绩。即:id 2,索引6,->等级= 1,id 2在索引3->等级2,id 3在索引4->等级1和id 3在索引5-> 2等等 那就是期望

1 个答案:

答案 0 :(得分:2)

IICU

df2=df.sort_values(by=['sum_of_all','id'], ascending=[False, False])
df2['grade']=df2.groupby('id')['sum_of_all'].cumcount()+1
df2

结果

enter image description here