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

如何在Pandas DataFrame中筛选空白行并保留字符串"NA"值?

解决Pandas中字符串"NA"被误判为缺失值的问题

有两种可行的解决方案,根据你的数据阶段选择:

方案1:导入时直接规避误判

如果是从FTP读取CSV类文件,可通过read_csv的参数指定合法缺失值范围,把字符串"NA"排除在外:

import pandas as pd

# 仅将空字符串、"NaN"识别为缺失值,保留合法的"NA"
df = pd.read_csv(
    "你的FTP文件路径",
    keep_default_na=False,
    na_values=["", "NaN"]
)

# 现在直接用isna()筛选所有含空白的行即可
missing_rows = df[df.isna().any(axis=1)]

方案2:已导入数据后的修正处理

如果已经完成数据导入,不想重新读取,可单独对"management population"列做特殊判断,再合并其他列的缺失情况:

import pandas as pd

target_col = "management population"

# 其他列的缺失判断:任意列存在缺失值即标记
mask_other = df.drop(columns=[target_col]).isna().any(axis=1)

# 目标列的缺失判断:仅识别真正的空白(np.nan/空字符串/纯空格),排除"NA"
mask_target = (df[target_col].isna()) | (df[target_col].str.strip() == "")

# 合并掩码:只要行内有任意一列需要补全就选中
final_mask = mask_other | mask_target

# 得到需要返回给行政团队补全的行
missing_rows = df[final_mask]

补充说明

  • 方案1更高效,从源头避免误判,适合还未完成数据导入的场景
  • 方案2适合已完成导入、需要快速修正筛选逻辑的场景
  • 如果需要处理的空白还包含其他形式(比如"NULL"),可在na_values或mask_target中补充对应判断条件

内容的提问来源于stack exchange,提问作者Jon.Moon

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 05:16:35