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

基于列缺失值占比阈值筛选DataFrame

筛选DataFrame中缺失值占比低于指定阈值的列

核心思路

先计算DataFrame每一列的缺失值占比,再筛选出占比低于设定阈值的列,最后用这些列索引原DataFrame得到结果。

代码实现

以保留缺失值占比低于80%的列为例:

import pandas as pd
import numpy as np

# 1. 生成示例DataFrame(可替换为你的数据)
data = {
    'col1': [1, 2, np.nan, 4, 5],       # 缺失值占比20%
    'col2': [np.nan, np.nan, np.nan, np.nan, 1],  # 缺失值占比80%
    'col3': [np.nan, np.nan, 3, 4, 5],  # 缺失值占比40%
    'col4': [np.nan]*5                  # 缺失值占比100%
}
df = pd.DataFrame(data)

# 2. 设定阈值
threshold = 0.8

# 3. 计算每列缺失值占比并筛选符合条件的列
# isnull()生成布尔矩阵,mean()计算每列True的占比(即缺失值比例)
keep_cols = df.columns[df.isnull().mean() < threshold]

# 4. 得到筛选后的DataFrame
filtered_df = df[keep_cols]

# 查看结果
print("原数据:")
print(df)
print("\n筛选后数据(仅保留缺失值占比<80%的列):")
print(filtered_df)

关键说明

  • df.isnull().mean():快速计算每列缺失值占比的核心代码
  • 若需要保留缺失值占比≤阈值的列,只需将判断条件改为df.isnull().mean() <= threshold
  • 示例中col2缺失值占比刚好等于80%,会被排除;col1和col3因占比低于阈值被保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 10:42:39