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

如何在Pandas DataFrame中保留每第7行?含100行首行起始示例

如何在Pandas DataFrame中保留每第7行?

核心思路

Pandas的索引切片支持start:end:step的语法,刚好能搞定这种每隔固定行数筛选数据的需求。这里要先明确:Pandas默认是0-based索引(也就是我们肉眼看到的“第一行”,对应代码里的索引是0),所以如果需求是从显示的第一行开始保留每第7行,起始索引就用0,步长设为7就行。

具体实现方法

方法一:用iloc快速切片

iloc是Pandas按位置索引的利器,处理这种按行位置筛选的场景最直接:

import pandas as pd

# 假设你的DataFrame命名为df
filtered_df = df.iloc[::7]

解释下:[::7]表示从第0行(第一行)开始,遍历到最后一行,每7行取一次数据,最终保留的就是第1、8、15...行(对应索引0、7、14...)。

方法二:布尔索引显式筛选

如果想让筛选逻辑更直观,也可以用布尔数组来标记需要保留的行:

# 生成布尔数组:索引是7的倍数时为True
mask = df.index % 7 == 0
filtered_df = df[mask]

这个方法和上面的效果完全一致,只是把筛选逻辑明写出来了,适合需要灵活调整条件的场景。

针对100行DataFrame的验证

如果你的DataFrame刚好有100行(索引从0到99),用上面的方法筛选后,保留的行索引是0、7、14...直到98(因为98=7×14,下一个105超过99了),总共15行,完美符合“从第一行开始,保留每第7行”的要求。

额外调整:如果从第7行开始保留

要是你需求变成从第7行(而非第一行)开始保留每第7行,只需要修改起始索引:

# 从索引7(第8行)开始,每7行取一次
filtered_df = df.iloc[7::7]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:09:05