Pearson与Scipy有多重关联

时间:2016-08-17 12:14:19

标签: python scipy pearson-correlation

我正在尝试做一些非常简单的事情来计算几个变量的Pearson相关矩阵,这些变量是作为DataFrame的列给出的。我希望它忽略nans并提供p值。 scipy.stats.pearsonr不足,因为它只适用于两个变量,不能解释nans。应该有更好的东西......

例如,

    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矩阵。我希望它省略None。也就是说,[1,6,1],[2,5,NaN]之间的相关性应该是[1,6]和[2,5]之间的相关性。

必须有一种不错的Pythonic方法,有人可以建议吗?

1 个答案:

答案 0 :(得分:1)

如果您的数据位于pandas DataFrame中,则可以使用df.corr()

来自docs

  

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