python - Spearman 与 corrwith python 的相关性

标签 python pandas correlation

我正在使用下面的代码关联两个数据框。基本上,从一个数据框 (a) 中选择一组列,从另一个数据框 (b) 中选择一列。它工作得很好,除了我需要用长矛手的选项来做。我将不胜感激任何意见或想法。谢谢...

 a.ix[:,800000:800010].corrwith(b.ix[:,0])

最佳答案

考虑使用 pandas.Series.corr在一个数据框 apply 中,您将每一列传递给一个函数,这里是匿名 lambda,并将每个列与 b 列配对:

随机数据(播种以重现)

import pandas as pd
import numpy as np

np.random.seed(50)

a = pd.DataFrame({'A':np.random.randn(50),
                  'B':np.random.randn(50),
                  'C':np.random.randn(50),
                  'D':np.random.randn(50),
                  'E':np.random.randn(50)})

b = pd.DataFrame({'test':np.random.randn(10)})

再现 PIL 逊相关

pear_result1 = a.ix[:,0:5].corrwith(b.ix[:,0])
print(pear_result1)
# A   -0.073506
# B   -0.098045
# C    0.166293
# D    0.123491
# E    0.348576
# dtype: float64

pear_result2 = a.apply(lambda col: col.corr(b.ix[:,0], method='pearson'), axis=0)
print(pear_result2)
# A   -0.073506
# B   -0.098045
# C    0.166293
# D    0.123491
# E    0.348576
# dtype: float64

print(pear_result1 == pear_result2)
# A    True
# B    True
# C    True
# D    True
# E    True
# dtype: bool

斯 PIL 曼相关

spr_result = a.apply(lambda col: col.corr(b.ix[:,0], method='spearman'), axis=0)
print(spr_result)
# A   -0.018182
# B   -0.103030
# C    0.321212
# D   -0.151515
# E    0.321212
# dtype: float64

带 p 值的 Spearman 系数

from scipy.stats import spearmanr, pearsonr

# SERIES OF TUPLES (<scipy.stats.stats.SpearmanrResult> class)
spr_all_result = a.apply(lambda col: spearmanr(col, b.ix[:,0]), axis=0)

# SERIES OF FLOATS
spr_corr = a.apply(lambda col: spearmanr(col, b.ix[:,0])[0], axis=0)
spr_pvalues = a.apply(lambda col: spearmanr(col, b.ix[:,0])[1], axis=0)

关于python - Spearman 与 corrwith python 的相关性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45843761/

相关文章:

python - 在 for 循环中搜索字符串,而不在循环中单独引用每个字符串

python - 使用 Pandas 将 DF 列表与交替列输出合并

python - 同时选择和重命名列

python - 使用 dict.get() 的斐波那契数列和 RecursionError

python - 使用 pdoc 模块创建一个包含包列表的 html 页面?

python - Jupyter 笔记本 : split screen vertically (i. e。水平添加单元格)

MATLAB Cronbach 的 Alpha(如果项目被删除)

python - 无法绘制一列相对于其他列的热图

python - pandas 列相关性具有统计显着性

python - 将 pandas DataFrame 行与键/值对的字典进行匹配