python - 如何在特定标签之前/之前获取 n 个索引号?
问题描述
我有一个如下所示的数据集;我的目标是创建一个包含之前三个索引号的列表Accepted
。
i Label value
0 Rejected 12
1 Rejected 10
2 Rejected 22
3 Rejected 32
4 Rejected 25
5 Rejected 15
6 Accepted 42
7 Accepted 52
8 Accepted 17
9 Accepted 8
10 Accepted 10
11 Rejected 21
12 Rejected 32
13 Rejected 12
这个例子的结果应该是:
list = [3,4,5]
编辑:这种情况在我的数据集中重复了很多次。在某些情况下,Accepted 范围只能是两个样本,如下例所示:
i Label value
0 Rejected 12
1 Rejected 10
2 Rejected 22
3 Rejected 32
4 Rejected 25
5 Rejected 15
6 Accepted 42
7 Accepted 52
8 Rejected 17
9 Rejected 8
10 Rejected 10
11 Rejected 21
12 Rejected 32
13 Rejected 12
解决方案
您可以使用:
df[df.Label.ne('Accepted')&df.Label.shift(-3).eq('Accepted')].index
Int64Index([3, 4, 5], dtype='int64', name='i')
推荐阅读
- python-3.x - 使用pygame时如何在python中处理时间
- spring-cloud-dataflow - 删除scdf旧数据库数据--spring-cloud-dataflow
- laravel - 在 Heroku 上部署后在生产中自动运行 php artisan migrate 是一个好习惯吗?
- python - IP 摄像机 OpenCV 图像重读
- excel - 需要代码行才能点击网站上的按钮
- javascript - 选中复选框时隐藏 iframe 中的元素
- visual-studio - 禁止在调试时编辑代码
- sql - 用逗号分隔字符串
- android - ListBuilder 在同一视图中重复数据的问题
- node.js - 如何将 Redis 桌面管理器连接到数字海洋 ubuntu 服务器