根据 pandas 中的 2 个条件对列进行排名
Rank a column based on 2 conditions in pandas
我有一个 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()
使用df.groupby().rank()
df['rank'] = df.groupby('col_a')['col_b'].rank()
我有一个 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()
使用df.groupby().rank()
df['rank'] = df.groupby('col_a')['col_b'].rank()