2016-08-17 77 views
0

我想要做一些很简单的计算一个Pearson相关矩阵的几个变量,这些变量是作为DataFrame的列给出的。我希望它忽略nans并提供p值。 scipy.stats.pearsonr是不够的,因为它只适用于两个变量,不能解释nans。应该有什么比这更好的...Pearson与Scipy的多重关联

例如,

df = pd.DataFrame([[1,2,3],[6,5,4],[1,None,9]]) 

     0 1 2 
    0 1 2.0 3 
    1 6 5.0 4 
    2 1 NaN 9 

DF的列变量和行的意见。我想要一个返回3x3相关矩阵的命令,以及相应p值的3x3矩阵。我希望它省略无。也就是说,[1,6,1],[2,5,NaN]之间的相关性应该是[1,6]和[2,5]之间的相关性。

必须有一个很好的Pythonic方式来做到这一点,任何人都可以请建议?

+0

这是这两个向量之间的Pearson相关性:[6,5,4] ,[1,无,9]? – cel

+0

谢谢@cel。我希望变量是列和观察结果是行。所以要回答你的问题,[1,6,1],[2,5,NaN]之间的相关应该是[1,6]和[2,5]之间的相关性。我也编辑了这些问题。 – splinter

回答

1

如果你有一个熊猫数据框中的数据,你可以简单地使用df.corr()

docs

DataFrame.corr(method='pearson', min_periods=1)
计算列的成对相关,不含NA /空值