pandas - 根据 pandas 中的 2 个条件对列进行排名
问题描述
我有一个这样的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()
推荐阅读
- sql - Redshift - 按周对数据进行排序
- flutter - 如何将容器的不透明度放在颤动中
- excel - 使用字体大小和样式从刀片视图导出到 Excel
- sql - SQL查询根据值和字段名从两个表中获取计数
- apache-kafka - KafkaStreams 应用程序具有 Java 线程开销
- javascript - 如何打印 HTML 表格
- typescript - 如何避免 TS 三斜杠指令中的丑陋导入
- javascript - 在 Node.js 中获取嵌套 SQL 查询的空响应
- azure - 部署后自动删除 Azure 虚拟机
- javascript - 为什么我的数组参数不在 POST 请求中?