如何在传递输入时查找前 n 个相关项及其在 pandas 数据框中的值

问题描述 投票:0回答:1

我是 pandas 的新手,并试图在提供索引时获取前 n 个相关项目。 例如,在下图中,如何获取持续时间的所有相关项目

Correlation Matrix

我在数据帧上生成了相关矩阵,并使用以下代码重塑了矩阵

def get_top_abs_correlations(df, n=50):
     au_corr = df.corr().abs().unstack()
     input = "duration"
     for index, value in au_corr.items():
         if input in index:
            print(index, value)

我试图找出 - 如何过滤掉重复的相关对并仅在“持续时间”内检索前 n 个相关项目

python pandas dataframe correlation
1个回答
0
投票

以下是如何修改

get_top_abs_correlations
函数以过滤掉重复的相关对并仅检索某些输入特征的前 n 个相关项:

def get_top_abs_correlations(df, input_feature, n=50):
    # Calculate absolute correlations
    au_corr= df.corr().abs().unstack()

    # Filter out duplicate correlation pairs
    corr_pairs = au_corr[au_corr.index.get_level_values(0) != au_corr.index.get_level_values(1)]

    # Get top n correlated items for input_feature
    top_correlations = corr_pairs[input_feature].nlargest(n)

    return top_correlations    

此函数将根据绝对相关值返回给定 input_feature 的前 n 个相关项。它过滤掉重复的相关对并检索前 n 个相关项。

© www.soinside.com 2019 - 2024. All rights reserved.