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

如何在Pandas中实现返回指定列的Top3最高相关性特征?

实现top_corr函数获取特征的Top N相关特征

步骤说明

  1. 提前计算数据框的相关系数矩阵,作为后续函数的数据源;
  2. 定义top_corr函数,接收目标特征名和需要返回的Top数量;
  3. 从相关系数矩阵中提取目标特征的相关系数序列,排除自身的完全相关项(系数为1);
  4. 按相关系数的绝对值降序排序(若仅需正相关,可移除abs()),取前N个结果;
  5. 整理成指定格式的表格并输出。

完整代码实现

import pandas as pd
import numpy as np

# 生成示例数据框
df = pd.DataFrame(np.random.randint(0, 100, size=(5, 5)), columns=list('abcde'), index=list('abcde'))
# 计算相关系数矩阵
corr_df = df.corr()

def top_corr(feature, top_n):
    # 提取目标特征的相关系数,排除自身
    corr_series = corr_df.loc[feature].drop(feature)
    # 按相关系数绝对值降序排序,取前top_n个的索引
    sorted_indices = corr_series.abs().sort_values(ascending=False).head(top_n).index
    # 获取原始相关系数值并保留两位小数
    top_values = corr_series.loc[sorted_indices].round(2)
    # 构造结果数据框
    result = pd.DataFrame({
        'Features': [feature] * top_n,
        'Top Similar Features': sorted_indices,
        'Correlation': top_values
    })
    # 打印无索引的表格
    print(result.to_string(index=False))

# 调用示例
top_corr('a', 3)

输出示例

运行上述代码后,会输出类似如下格式的结果(数值随随机数据变化):

Features    Top Similar Features    Correlation
       a                       b           0.60
       a                       c          -0.62
       a                       e           0.28

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:42:23