【发布时间】:2022-11-27 19:16:25
【问题描述】:
我正在尝试制作相关系数的多索引表(矩阵)和p值。我更愿意使用 scipy.stats 测试。
x = pd.DataFrame(
list(
zip(
[1,2,3,4,5,6], [5, 7, 8, 4, 2, 8], [13, 16, 12, 11, 9, 10]
)
),
columns= ['a', 'b', 'c']
)
# I've tried something like this
for i in range(len(x.columns)):
r,p = pearsonr(x[x.columns[i]], x[x.columns[i+1]])
print(f'{r}, {p}')
显然 for loop 不会起作用。我想要结束的是:
| a | b | c | ||
|---|---|---|---|---|
| a | r | 1.0 | -.09 | -.8 |
| p | .00 | .87 | .06 | |
| b | r | -.09 | 1 | .42 |
| p | .87 | .00 | .41 | |
| c | r | -.8 | .42 | 1 |
| p | .06 | .41 | 00 |
几年前我已经编写代码来解决这个问题(在这个社区的帮助下),但它只适用于 spearmanr 的旧版本。
任何帮助将不胜感激。
【问题讨论】:
标签: python pandas correlation