在Python的Pandas中基于列条件与列表遍历并筛选DataFrame
需求说明
原DataFrame结构
| Turn | Flag |
|---|---|
| 260 | 0 |
| 265 | 0 |
| 284 | 0 |
| 284 | 0 |
| 284 | 1 |
| 285 | 0 |
| 290 | 1 |
| 290 | 0 |
| 1 | 1 |
参考列表
[1,45,56,98,284,290]
新DataFrame生成规则
- 新DataFrame从原DataFrame的首行开始构建;
- 以首行的Turn值(260)为基准,在参考列表中找到第一个大于它的值(284),然后从原DataFrame中选取该Turn值且Flag=1的行加入新DataFrame;
- 以上次加入新DataFrame的Turn值(284)作为新基准,重复上一步:在列表中找到大于它的下一个值(290),选取对应Flag=1的行加入;
- 当遇到Turn值为1时,需从列表开头重新检查,直接选取原DataFrame中Turn=1且Flag=1的行加入;
- 原DataFrame中Turn值不在参考列表内的行可忽略。
目标DataFrame结构
| Turn | Flag |
|---|---|
| 260 | 0 |
| 265 | 0 |
| 284 | 1 |
| 285 | 0 |
| 290 | 1 |
| 1 | 1 |
内容的提问来源于stack exchange,提问作者Dein_coder
相关产品推荐
相关产品推荐

