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

如何识别仅含'skip'和'dne'的df列并删除以实现特征降维?

处理大型DataFrame的特征降维方案

针对你这个7万列的字符串型DataFrame,已经把NaN替换成'dne'后,要删掉仅包含'skip'和'dne'的列,可以这么做:

高效版本(适合超大型数据集)

先缩小候选列范围,再精准筛选,能大幅提升处理速度:

# 第一步:先找出唯一值数量≤2的列(减少后续计算量)
candidate_cols = df.columns[df.nunique() <= 2]
# 第二步:从候选列里筛选出仅含'skip'和'dne'的列
cols_to_drop = [col for col in candidate_cols if set(df[col].unique()) == {'skip', 'dne'}]
# 第三步:删除目标列
df.drop(cols_to_drop, axis=1, inplace=True)

简洁版本(数据量较小时用)

如果数据集没大到极致,也可以用一行式筛选直接删除:

df = df.drop([col for col in df.columns if set(df[col].unique()) == {'skip', 'dne'}], axis=1)

核心逻辑就是检查每列的唯一值集合,判断是否只有skip和dne两个值,符合条件的直接从DataFrame中移除。先筛选唯一值≤2的列,能避免对7万列全量做集合检查,让处理效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:33:12