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

如何基于缺失值百分比筛选DataFrame列名并生成变量?

问题描述

我已编写代码用于显示各列的缺失值百分比,请问如何创建一个新变量,使其仅包含缺失值占比超过X%的列名?原本以为可以用if语句实现,但不确定具体写法。

后续实现进展

1. 计算分类变量的缺失值占比

首先筛选出所有分类变量,并计算它们的缺失值数量与占比:

# 生成包含缺失值的分类变量列表
cat_vars2 = X_train.select_dtypes(include=['object'])
len(cat_vars2)

print(cat_vars2.isnull().sum())

# 输出各变量的缺失值百分比
percent_missing = cat_vars2.isnull().sum() * 100 / len(cat_vars2)
missing_value_cat_vars = pd.DataFrame({'column_name': cat_vars2.columns,
                                 'percent_missing': percent_missing})

missing_value_cat_vars.sort_values('percent_missing', inplace=True)
print(missing_value_cat_vars)

上述代码会输出每个分类变量的缺失值数量,以及按缺失占比排序后的结果。

2. 筛选不同缺失占比的列名

通过loc索引直接筛选出符合条件的列名,存入新变量:

# 筛选缺失占比≥10%的列名,用于后续用'missing'字符串填充
with_string_missing=list(missing_value_cat_vars.loc[missing_value_cat_vars['percent_missing']>=10,'column_name'])
                        
print(with_string_missing)

# 筛选缺失占比<90%的列名,用于后续用最频繁类别填充
with_frequent_category=list(missing_value_cat_vars.loc[missing_value_cat_vars['percent_missing']<90,'column_name'])

print(with_frequent_category)

执行后会分别输出两组符合条件的列名列表。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:50:44