我正在尝试做一些非常简单的事情来计算几个变量的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方法,有人可以建议吗?
答案 0 :(得分:1)
如果您的数据位于pandas DataFrame中,则可以使用df.corr()
。
来自docs:
DataFrame.corr(method='pearson', min_periods=1)
计算列的成对相关性,不包括NA /空值