将scipy.stats.spearmanr()的输出保存为excel或text

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

我需要生成包含检验统计量和p值的相关矩阵(这是心理学研究中的常见做法)并且我正在使用

spearmanr()

从scipy.stats做到这一点。

我有一个看起来像这样的数据集

v_1    v_2    v_3    v_4    v_5
 1      4      2      5      3 
 5      3      6      2      4 
 6      2      4      1      1 
 2      5      3      2      6 
 6      3      2      2      3

当我把spearmanr()称为

cor1 = spearmanr(v_1, v_4)

我可以在控制台中看到输出,我可以

print(cor1)

返回

SpearmanrResult(correlation=array([[x,y,z,a,b,c]]), (pvalue=array([[x,y,z,a,b,c]]))

但我无法对那些允许我按照我选择的方式进行报道的价值观做任何事情。

我已经尝试将它们转换成熊猫DF了

cors = pd.DataFrame(cor1)

我试着用ex_excel等把它写成excel或文本

我错过了一些愚蠢的东西。

请帮忙。

python pandas scipy visualization correlation
1个回答
1
投票

cor1实际上是一个NamedTuple。您可以访问相关字段:cor1.correlationcor1.pvalue

或者,您可以在调用spearman时直接分解:

cor, pvalue = spearmanr(v_1, v_4)

然后可以将这些数组转换为DataFrame并写入excel。

例如pd.DataFrame(cor).to_csv("correlation.csv")

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