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

如何删除DataFrame指定列中含空字符串的行?现有代码为何无效?

问题解答

你用的df.dropna(subset=[column_name], inplace=True)不是正确的实现方式。

原因很简单:dropna()方法默认只识别NaN、None这类Pandas定义的标准缺失值,而空字符串''属于普通的字符串值,不在它的处理范围内,所以运行这段代码后,包含空字符串的行不会被删除。

正确的处理方式分两种场景:

  • 只需要删除空字符串的行:

    # 方式1:直接筛选非空行
    df = df[df[column_name] != '']
    # 方式2:通过索引删除
    df.drop(df[df[column_name] == ''].index, inplace=True)
    
  • 同时需要处理空字符串和标准缺失值(比如NaN):
    可以先把空字符串转换成标准缺失值,再用dropna处理:

    import pandas as pd
    # 将空字符串替换为pd.NA
    df[column_name] = df[column_name].replace('', pd.NA)
    # 此时dropna就能生效了
    df.dropna(subset=[column_name], inplace=True)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 08:15:37