pandas - pandas:获取前 n 个包括已排序列的重复项
问题描述
我有一些数据,比如
这是一个按 score 列排序的表,然后是 cat 列
score cat
18 B
18 A
17 A
16 B
16 A
15 B
14 B
13 A
12 A
10 B
9 B
我想获得包括重复项在内的前 5 名并添加排名
IE
rank score cat
1 18 B
1 18 A
2 17 A
3 16 B
3 16 A
4 15 B
5 14 B
我怎样才能用熊猫得到这个
解决方案
既然数据框是有序的,试试factorize
df['rnk'] = df.score.factorize()[0]+1
out = df[df['rnk'] <= 5]
out
score cat rnk
0 18 B 1
1 18 A 1
2 17 A 2
3 16 B 3
4 16 A 3
5 15 B 4
6 14 B 5
推荐阅读
- kubernetes - 在 Minikube Buildroot OS wget 中:不是 http 或 ftp url
- mysql - XAMPP phpmyadmin 在处理请求时总是显示错误
- sql-server - 如何将交换输出导出为 CSV 格式
- css - Tailwind - Flex 行儿童不会长高
- python - 比较两个产品大数据集
- docker - Nginx 代理:仅允许来自代理的 IP
- matlab - 限制 PID 控制器的输出使设备不稳定和不可调
- amazon-web-services - 避免 CDC / AWS DMS 任务的持续复制中的重复
- node.js - 将我的项目上传到 Heroku 时出现此错误。我正在使用 MapBox 和 node.js
- typescript - Typescript:如何仅从类类型中获取所有属性装饰器?