Python中如何对pandas dataframe按3行间隔筛选保留指定行
实现方案
你可以直接用pandas的位置索引筛选实现需求,以下是几种可行的写法:
方法1:直接用iloc切片(最简便)
你需要保留的行对应默认索引(从0开始计数)的2、5、8位,从索引2开始、步长为3取行即可:
import pandas as pd # 构造示例DataFrame,你可以替换成自己的df df = pd.DataFrame({ 'COL1': ['A','D','G','J','M','P','S','V','Y'], 'COL2': ['B','E','G','K','N','Q','T','W','Z'], 'COL3': ['C','F','I','L','O','R','U','X','A'] }) # 核心筛选代码 result = df.iloc[2::3]
iloc的切片规则为[起始位置:结束位置:步长],结束位置留空代表取到DataFrame最后一行。
方法2:适配非连续索引的场景
如果你的DataFrame索引不是默认的连续整数,可以先重置索引再筛选:
result = df.reset_index(drop=True).iloc[2::3]
方法3:用模运算筛选
和上述逻辑等价,筛选索引除以3余数为2的行即可:
result = df[df.index % 3 == 2]
内容的提问来源于stack exchange,提问作者chippycentra
相关产品推荐
相关产品推荐

