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

Pandas中统计含非常规缺失值的列缺失占比及代码问题排查

统计DataFrame中自定义缺失值的占比

你的问题出在类型不匹配:如果列是数值类型,df=='N/A'会返回全False,因为数值和字符串无法匹配,自然统计不到'N/A'的数量。另外你还没处理0.0和'-'这两类缺失值,下面是两种可靠的解决方法:

方法一:统一替换为NaN后统计

先把所有需要视为缺失值的条目转换成Pandas标准的NaN,再统一统计:

import pandas as pd

# 定义所有需要识别为缺失值的内容
missing_values = ['N/A', '-', 0.0]

# 将目标值替换为NaN
df_clean = df.replace(missing_values, pd.NA)

# 统计每列缺失值数量
mis_val = df_clean.isna().sum()

# 计算缺失值占比(百分比)
mis_val_percent = 100 * mis_val / len(df_clean)

# 整理成结果表查看
missing_stats = pd.DataFrame({
    '缺失值数量': mis_val,
    '缺失值占比(%)': mis_val_percent.round(2)
})
print(missing_stats)

方法二:直接多条件统计

如果不想修改原DataFrame,可以用isin()配合isna()直接统计:

# 统计原生NaN数量 + 自定义缺失值数量
mis_val = df.isna().sum() + df.isin(missing_values).sum()
mis_val_percent = 100 * mis_val / len(df)

注意:这种方法要确保列类型能匹配目标值,比如数值列里的'N/A'和'-'会被isin()忽略,所以方法一更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:01:13