python - DataFrame中相邻列之间的皮尔逊相关性
问题描述
假设我有一个 10 列的数据框。
现在我想快速计算每一列与其以下列之间的关系。
所以第 1 列和第 2 列、第 2 列和第 3 列、第 3 列和第 4 列的 pearson r 等等。
我有什么快速的方法吗?
谢谢你!
解决方案
您可以使用pandas.DataFrame.corr
Pearson 相关性并numpy.diag
提取感兴趣的值。让我向您展示一个包含 5 列的玩具示例(为简单起见):
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(0,10,(3,5)))
pcorr = df.corr()
np.diag(pcorr, 1)
你得到:
东风:
0 1 2 3 4
0 7 9 0 0 9
1 9 2 9 9 0
2 2 8 5 9 2
pcorr:
0 1 2 3 4
0 1.000000 -0.622693 0.215274 -0.240192 0.029344
1 -0.622693 1.000000 -0.898170 -0.609994 0.763857
2 0.215274 -0.898170 1.000000 0.896258 -0.969816
3 -0.240192 -0.609994 0.896258 1.000000 -0.977356
4 0.029344 0.763857 -0.969816 -0.977356 1.000000
您感兴趣的价值观:
array([-0.62269252, -0.89817029, 0.89625816, -0.97735555])
推荐阅读
- mongodb - MongoDB 中的计数和日期统计信息
- node.js - index.js 文件中的“解析错误:意外的令牌数据库”
- php - 如何通过数据透视表中的列过滤多对多关系
- node.js - 如何将这两个 MongoDB 操作合二为一?
- graphics - 如何使用 GLSL 在 WebGL 中选择 2D 对象?
- twitter-bootstrap - 访问 collapse:not(.show) { display: none; 的值 }
- python - 纳秒表现出奇怪的行为
- php - 选择所有记录,其余的
- mysql - wordpress 数据库表名更新
- audio - 如何在覆盖 ffmpeg 命令中包含音频?