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

如何从Pandas DataFrame中提取间隔N行的交替连续行子集?

Pandas DataFrame交替N行切片的简便实现方法

针对你需要提取交替N行(比如每200行取前100行)的需求,不需要逐片合并,有两种简洁的实现方式:

方法一:布尔掩码法(推荐)

利用索引的模运算生成布尔掩码,快速筛选目标行:

import pandas as pd
import numpy as np

# 示例DataFrame(1000行)
df = pd.DataFrame(np.arange(1000), columns=['data'])
N = 100  # 每次要提取的行数

# 生成掩码:每2*N行周期内,保留前N行
mask = (df.index % (2 * N)) < N
filtered_df = df[mask]

原理:将索引对2*N取模,余数小于N的行就是我们需要保留的部分,自动跳过中间的N行。如果总行数不是2*N的整数倍,最后不足一个周期的部分也会按规则处理(比如最后只剩150行,会保留前100行)。

方法二:索引拼接法

用numpy.r_直接拼接所有目标行的索引范围,再通过iloc提取:

import pandas as pd
import numpy as np

df = pd.DataFrame(np.arange(1000), columns=['data'])
N = 100

# 生成所有要提取的切片范围,拼接成连续索引
target_indices = np.r_[[slice(i, i + N) for i in range(0, len(df), 2 * N)]]
filtered_df = df.iloc[target_indices]

这种方式更直观,能清晰看到要提取的索引区间,适合需要明确控制切片范围的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:20:55