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

如何在未知行数的Pandas DataFrame中按间隔选取指定行?

问题

我有一个包含数据的Pandas DataFrame,已经知道如何选取某一行,但需要在以下条件下选取若干行到新的DataFrame中:

  • 不知道原DataFrame的总行数;
  • 先选取第一行,之后按固定间隔选取后续行。

示例数据代码:

import pandas as pd
import numpy as np
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
                   'B': 'one one two three two two one three'.split(),
                   'C': np.arange(8), 'D': np.arange(8) * 2})
                   
print(df)

输出:

A      B  C   D
0  foo    one  0   0
1  bar    one  1   2
2  foo    two  2   4
3  bar  three  3   6
4  foo    two  4   8
5  bar    two  5  10
6  foo    one  6  12
7  foo  three  7  14

期望结果:

  • 间隔为4时,得到:
A      B  C   D
0  foo    one  0   0
4  foo    two  4   8
  • 间隔为3时,得到:
A      B  C   D
0  foo    one  0   0
3  bar  three  3   6
6  foo    one  6  12

解决方案

直接使用Pandas的iloc进行切片操作即可,语法为df.iloc[::间隔值],其中:

  • 第一个空值表示从第0行(第一行)开始选取;
  • 第二个空值表示一直选取到DataFrame的最后一行;
  • 最后的间隔值就是你需要的固定间隔。

示例代码

间隔为4的情况

interval = 4
new_df = df.iloc[::interval]
print(new_df)

输出与期望一致:

A      B  C   D
0  foo    one  0   0
4  foo    two  4   8

间隔为3的情况

interval = 3
new_df = df.iloc[::interval]
print(new_df)

输出与期望一致:

A      B  C   D
0  foo    one  0   0
3  bar  three  3   6
6  foo    one  6  12

这个方法不需要提前知道原DataFrame的行数,iloc会自动处理到最后一行,完全满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:36:18