我有这样的df
df
col_a col_b
0 ADD 5
1 ADD 2
2 ADD 8
3 DELETE 3
4 DELETE 7
5 DELETE 4
现在我想在col_a = ADD时对col_b中的值进行排名,然后在col_a = DELETE时对col_b中的值进行排名。因此,有两个单独的等级值,但在一列之内。我有基于一种条件排名的代码,但可以通过两种条件帮助我。谢谢
df['Rank'] = df.col_b[df['col_a'] == 'ADD'].rank()
答案 0 :(得分:1)
使用df.groupby().rank()
df['rank'] = df.groupby('col_a')['col_b'].rank()