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

如何在Pandas DataFrame中筛选中位数绝对偏差最高的2000列

提取中位数绝对偏差最高的2000列

步骤说明

  • 计算DataFrame每一列的中位数绝对偏差(MAD)
  • 对MAD值按降序排序,选取前2000个列的名称
  • 用选中的列名从原DataFrame中提取对应列,生成新的DataFrame

代码实现

import pandas as pd

# 假设你的原DataFrame名为df
# 1. 计算每列的MAD(默认缩放不影响排序结果,所有列都乘以同一系数)
column_mad = df.mad(axis=0)

# 2. 按MAD降序排序,取前2000列的名称
top_columns = column_mad.sort_values(ascending=False).head(2000).index

# 3. 生成新的DataFrame
new_df = df[top_columns]

补充说明

  • 如果需要未缩放的原始MAD值(不除以1.4826),可修改第一步代码:
    column_mad = df.mad(axis=0, scale=False)
    
    但缩放与否不改变列的排序结果,两种方式选出的列完全一致。
  • 针对20000列的大尺寸DataFrame,该方法效率很高:mad()是向量化操作,排序和索引筛选都是Pandas内置的高效方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:29:53