python - 计算矩阵与其转置的相关性

标签 python pandas apply correlation

我正在尝试使用apply计算矩阵(此处为数据帧的行)与其转置的相关性。

代码如下:

import pandas as pd
from pprint import pprint
d = {'A': [1,0,3,0], 'B':[2,0,1,0], 'C':[0,0,8,0], 'D':[1,0,0,1]}
df = pd.DataFrame(data=d)
df_T = df.T  
corr = df.apply(lambda s: df_T.corrwith(s))

相关变量的所有列都包含 NaN 条目。 ID 喜欢了解为什么会出现 NaN。

谁能解释一下吗?

最佳答案

我认为你需要DataFrame.corr :

print (df.corr())
          A         B         C         D
A  1.000000  0.492366  0.942809 -0.408248
B  0.492366  1.000000  0.174078  0.301511
C  0.942809  0.174078  1.000000 -0.577350
D -0.408248  0.301511 -0.577350  1.000000

如果需要,您的解决方案需要相同的索引和列值:

df = pd.DataFrame(data=d).set_index(df.columns)
print (df)
   A  B  C  D
A  1  2  0  1
B  0  0  0  0
C  3  1  8  0
D  0  0  0  1

df_T = df.T  

corr = df.apply(lambda s: df_T.corrwith(s))
print (corr)
          A         B         C         D
A -0.866025 -0.426401 -0.816497  0.000000
B       NaN       NaN       NaN       NaN
C  0.993399  0.489116  0.936586 -0.486664
D -0.471405 -0.522233 -0.333333  0.577350

关于python - 计算矩阵与其转置的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57986224/

相关文章:

python - Pandas : vectorized operations on maximum values per row

r - 在数据框中结转的上次观察结果?

r - 在长数据中创建新的比率指标

python - 如何在测试的不同 python 源中模拟导入?

python - 自定义 NumPy 切片

python - 为什么我在pandas中groupby后得到 'key error'?

Python 嵌入式 C++

python - dask 和 pandas 数据帧中 apply 的不兼容性

python - 对包含 str 和元组的 Pandas MultiIndex 进行排序

r - 时区、期间。使用 R 在 xts 中应用