作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定 pandas 数据帧 df,获取其列 df.1
和 df.2
之间的相关性的最佳方法是什么?
我不希望输出用 NaN
来计算行数,而 pandas
内置相关性会这样做。但我也希望它输出 pvalue
或标准错误,而内置函数则不会。
SciPy
似乎被 NaN 所困扰,尽管我相信它确实报告了重要性。
数据示例:
1 2
0 2 NaN
1 NaN 1
2 1 2
3 -4 3
4 1.3 1
5 NaN NaN
最佳答案
要一次计算所有 p 值,您可以使用calculate_pvalues
函数(代码如下):
df = pd.DataFrame({'A':[1,2,3], 'B':[2,5,3], 'C':[5,2,1], 'D':['text',2,3] })
calculate_pvalues(df)
输出类似于corr()
(但具有 p 值):
A B C
A 0 0.7877 0.1789
B 0.7877 0 0.6088
C 0.1789 0.6088 0
<小时/>
详细信息:
calculate_pvalues(df[['A','B','C']]
from scipy.stats import pearsonr
import pandas as pd
def calculate_pvalues(df):
dfcols = pd.DataFrame(columns=df.columns)
pvalues = dfcols.transpose().join(dfcols, how='outer')
for r in df.columns:
for c in df.columns:
tmp = df[df[r].notnull() & df[c].notnull()]
pvalues[r][c] = round(pearsonr(tmp[r], tmp[c])[1], 4)
return pvalues
关于python - pandas 列相关性具有统计显着性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25571882/
我是一名优秀的程序员,十分优秀!