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

如何删除DataFrame中空值行?多列场景下的高效处理方法

示例DataFrame

MovieDuration
Avatar178
Spectre
John Carter132
Tangled
Titanic195
处理大型DataFrame空值的批量方法

不用逐个列写判断,Pandas提供了多种批量处理空值行的方案,按需选择即可:

  • 删除任意含空值的行
    只要行内某一列有空值就直接删除,一行代码搞定:

    df = df.dropna()
    

    对应你的示例,执行后会移除Spectre和Tangled这两行。

  • 仅删除全为空值的行
    只移除那些所有列都是空值的行,避免误删仍有有效数据的行:

    df = df.dropna(how='all')
    

    你的示例里没有全空行,执行后数据不会变化。

  • 保留至少N个非空值的行
    可以指定行内至少要有多少个非空值才保留,比如要求行内至少2个非空值(对应示例就是保留Movie和Duration都有值的行):

    # 保留至少2个非空值的行
    df = df.dropna(thresh=2)
    
  • 针对指定多列的空值删行
    如果只在意部分列的空值,直接传列名列表给subset参数,不用逐个列写判断:

    # 仅针对Duration和其他指定列的空值删除对应行
    df = df.dropna(subset=['Duration', 'OtherColumn1', 'OtherColumn2'])
    
  • 替换空值而非删除
    如果删除行损失的数据过多,更推荐填充空值:

    • 批量给所有列填充同一个常量:
      df = df.fillna(0) # 可替换为其他合适常量
      
    • 按列类型填充统计值(数值列用均值,分类列用众数):
      # 数值列用均值填充
      num_cols = df.select_dtypes(include=['int64', 'float64']).columns
      df[num_cols] = df[num_cols].fillna(df[num_cols].mean())
      
      # 分类列用众数填充
      cat_cols = df.select_dtypes(include=['object']).columns
      df[cat_cols] = df[cat_cols].fillna(df[cat_cols].mode().iloc[0])
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:45:36