jupyter notebook 中不同数据集的 2 列与热图的相关性

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

我想寻求有关 2 个不同数据集的相关矩阵并将其生成为热图的支持。

以下是示例数据:

表情 公关 指标
订婚 0.33 0.70
兴奋 0.33 0.15
专注 0.33 0.36
兴趣 0.67 0.47
放松 0.55 0.20
压力 0.44 0.40

由于这些数据不是从csv文件导入的(由于以后需要修改),所以是通过df创建的。并且使用 astype(float)

将值转换为浮点数

这里提供了我创建 df 和转换类型的方式。

data = {
    'Expression':['Engagement', 'Excitement', 'Focus','Interest','Relaxation','Stress'],
    'PR': ['0.33','0.33','0.33','0.67','0.55','0.44'],
    'Metrics': ['0.70','0.15','0.36','0.47','0.20','0.40']
    }

df['PR']=df['PR'].astype(float) #Converts object dtype to float
df['Emotiv Metrics']=df['Emotiv Metrics'].astype(float) #Converts object dtype to float

之后,如果我使用

df.corr()
,它只会提供如图所示的相关结果:

                      PR        Metrics
PR              1.000000       -0.048189
Metrics        -0.048189        1.000000

但是,我想生成的是一个相关矩阵,显示 PR 和指标中的EACH 表达式之间的相关性,以及截取图像中提供的内容,包括MetricsPR

这种情况我该怎么办?

或者如果上面的代码有什么错误,也请指出。

python pandas dataframe correlation
1个回答
0
投票

DataFrame.dot
与转置
DataFrame
seaborn.heatmap
一起使用:

import seaborn as sb

df1 = df.set_index('Expression')[['PR','Metrics']]
df = df1.dot(df1.T).rename_axis(index='name1', columns='name2')
print (df)

name2       Engagement  Excitement   Focus  Interest  Relaxation  Stress
name1                                                                   
Engagement      0.5989      0.2139  0.3609    0.5501      0.3215  0.4252
Excitement      0.2139      0.1314  0.1629    0.2916      0.2115  0.2052
Focus           0.3609      0.1629  0.2385    0.3903      0.2535  0.2892
Interest        0.5501      0.2916  0.3903    0.6698      0.4625  0.4828
Relaxation      0.3215      0.2115  0.2535    0.4625      0.3425  0.3220
Stress          0.4252      0.2052  0.2892    0.4828      0.3220  0.3536

sb.heatmap(df, annot=True)
© www.soinside.com 2019 - 2024. All rights reserved.