我有dataframe df,其中包括3列,如下所示(选项卡分隔):
X Y types
0.3422 0.3214 pen
-0.1784 0.8621 pen
0.9932 0.1347 pencil
0.2847 -0.7634 pen
-0.6548 -0.2981 ruler
0.4792 0.3782 pencil
0.9231 -0.2949 ruler输出将是如下相关矩阵:
pen pencil ruler
pen C1 C2 C3
pencil C4 C5 C6
ruler C7 C8 C9我尝试过.corr(),但是它不能正常工作,df是如何被构造的
注: C1是笔笔之间的相关值,C2是笔笔之间的相关值,等等.
能帮个忙吗?
发布于 2020-11-29 21:47:09
IIUC,你可以:
res = df.groupby('types').mean().T.corr()输出
types pen pencil ruler
types
pen 1.0 1.0 1.0
pencil 1.0 1.0 1.0
ruler 1.0 1.0 1.0您可以更改关联方法以满足您的需要,例如:
import numpy as np
res = df.groupby('types').mean().T.corr(method=np.dot)
print(res)输出
types pen pencil ruler
types
pen 1.000000 0.145973 -0.021464
pencil 0.145973 1.000000 0.022724
ruler -0.021464 0.022724 1.000000默认情况下,方法将是pearson相关,来自于文档 on方法。
方法{‘pearson’,‘kendall’,‘spearman’}或可调用的相关方法: pearson :标准相关系数 kendall : Kendall头相关系数 spearman : Spearman秩相关 可调用:可调用,输入两个一维ndarray并返回一个浮点数。请注意,corr返回的矩阵沿对角线将有1,无论可调用的行为如何,它都是对称的。 新版本0.24.0。
https://stackoverflow.com/questions/65065444
复制相似问题