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

如何删除pandas dataframe中的每隔一行数据?

Pandas删除间隔缺省值空行解决方案

下面提供几种适配不同场景的处理方法:

  • 场景1:确认严格每隔一行全为缺省值
    这种情况直接按行索引切片效率最高,假设从0开始计数的行索引中,偶数行是有效数据、奇数行全是空行,代码如下:
    # 保留偶数行,若奇数行是有效数据就把==0改成==1
    df = df[df.index % 2 == 0]
    
  • 场景2:待删除行是全缺省行,不一定严格间隔
    用pandas自带的dropna方法,指定how='all'参数仅删除整行全为缺省值的行:
    df = df.dropna(how='all')
    
    如果你读取的文件中n/a是字符串格式,没有被pandas识别为缺省值,先做替换再删除:
    import numpy as np
    # 先把字符串'n/a'替换为pandas可识别的缺省值
    df = df.replace('n/a', np.nan).dropna(how='all')
    
  • 场景3:待删除行不是全空,但缺省值占比极高
    可以通过thresh参数设置保留行的最少非空值数量,比如要求一行至少有20%的非空值才保留:
    # 计算最少需要的非空值数量,0.2可按需调整
    min_non_null = int(len(df.columns) * 0.2)
    df = df.dropna(thresh=min_non_null)
    

删除空行之后如果需要重置连续的行索引,可执行以下代码:

# drop=True表示不保留旧索引作为新列
df = df.reset_index(drop=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 21:06:06