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

如何按索引分组计算DataFrame中Col-1与其余列的相关性

按索引分组计算Col-1与其他列的相关性

问题描述

现有如下结构的DataFrame:

df:
         Col-1   Col-2   Col-3 ..................Col-100
index   
  A        23      33     1                        5                       
  A        33      22     4                        29
  A        1       5      3                        24
  B        65      12     4                        42
  B        2       24     4                        24
  B        3       12     24                       5

需要按index分组,计算Col-1与DataFrame中其余所有列的相关性,期望输出格式如下:

Col-1  Col-2  Col-3 ............Col-100
  A    1      0.24    0.2               0.45
  B    1      0.30    0.25              0.18

解决方案

可以通过pandas的分组功能结合自定义计算逻辑实现,具体代码如下:

import pandas as pd

# 定义分组内的相关性计算函数
def group_corr_calc(group):
    # 计算分组数据的相关系数矩阵,提取第一行(对应Col-1与所有列的相关性)
    return group.corr().iloc[0]

# 按索引分组并应用计算函数
result_df = df.groupby(df.index).apply(group_corr_calc)
# 可选:保留两位小数对齐示例格式
result_df = result_df.round(2)

代码说明

  1. 自定义计算函数:对每个分组数据计算完整的相关系数矩阵,由于Col-1是第一列,矩阵的第一行就是它与所有列的相关系数(包含自身的1)。
  2. 分组计算:通过groupby(df.index)按索引分组,再用apply将自定义函数应用到每个分组,自动拼接成目标格式的结果DataFrame。
  3. 小数保留:round(2)是可选步骤,用于将结果保留两位小数,和示例输出的格式匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:40:54