You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Python中双冒号索引[::3]的逆选操作?

实现双冒号索引的逆操作(保留原顺序)

针对你需要获取DF[::3]之外所有行且保持原顺序的需求,有两种简单可靠的实现方式:

方法一:布尔掩码反选

通过生成布尔掩码标记需要保留的行,直接筛选即可维持原顺序:

# 创建掩码:索引对3取余不等于0的行(即排除[::3]选中的行)
mask = ~(DF.index % 3 == 0)
# 筛选得到目标数据
result = DF[mask]

原理:DF.index % 3 == 0会选中所有第0、3、6...行(也就是DF[::3]的行),~符号对布尔值取反,就能得到所有未被选中的行的标记,用这个掩码筛选后会严格保留原数据的行顺序。

方法二:删除选中的行

先获取DF[::3]的索引,再通过drop方法删除这些行,剩余行自然保持原顺序:

# 获取需要删除的行索引
drop_indices = DF[::3].index
# 删除索引对应的行,得到目标数据
result = DF.drop(drop_indices)

这个方法逻辑直观,直接移除不需要的行,不会改变剩余行的排列顺序。

注意:避免用分片拼接的方式

如果你尝试用DF[1::3].append(DF[2::3])这类方式,会先取所有第1、4、7...行,再取第2、5、8...行,最终数据的顺序会被打乱,不符合需求。上面两种方法都能完美解决顺序问题。

内容的提问来源于stack exchange,提问作者tesla john

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 10:36:04