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

如何在Pandas中读取CSV:每4行保留第2行(行号2、6、10…)的数据

解决方案

首先明确:pandas.read_csv的skiprows参数里,行号从0开始计数——x=0是CSV表头行,x=1是第一条数据行,以此类推。

针对你要保留“第2、6、10…行(从第2行开始每4行取一行)”的需求,分两种常见场景给出代码:

场景1:行号指CSV物理行号(从1开始)

也就是保留CSV文件里第2、6、10行(表头是第1行),对应skiprows里的x=1、5、9…,满足(x-1) %4 ==0:

import pandas as pd

# 读取指定列并筛选目标行
df = pd.read_csv(
    'env_picacho-ma_2013.csv',
    usecols=['fecha_observacion', 'valor'],
    skiprows=lambda x: x != 0 and (x - 1) % 4 != 0
)

# 输出valor列
print(df['valor'])

场景2:行号指数据行序号(从1开始)

也就是保留第2、6、10条数据(跳过第1、3、4、5…条数据),对应skiprows里的x=2、6、10…,满足(x-2) %4 ==0:

import pandas as pd

df = pd.read_csv(
    'env_picacho-ma_2013.csv',
    usecols=['fecha_observacion', 'valor'],
    skiprows=lambda x: x != 0 and (x - 2) % 4 != 0
)

print(df['valor'])

备选方案:先全量读取再筛选

如果觉得skiprows的计数逻辑绕,可先读取所有目标列,再通过索引筛选:

对应场景1

import pandas as pd

df = pd.read_csv('env_picacho-ma_2013.csv', usecols=['fecha_observacion', 'valor'])
# 筛选索引满足 (索引-1) %4 ==0 的行
filtered_df = df[(df.index - 1) % 4 == 0]
print(filtered_df['valor'])

对应场景2

import pandas as pd

df = pd.read_csv('env_picacho-ma_2013.csv', usecols=['fecha_observacion', 'valor'])
# 筛选索引满足 (索引-1) %4 ==0 的行(第2条数据对应索引1)
filtered_df = df[(df.index - 1) % 4 == 0]
print(filtered_df['valor'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 04:43:21