- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用下面的代码关联两个数据框。基本上,从一个数据框 (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/
我最近开始使用 pandas。谁能解释一下函数 .corrwith() 与 Series 和 DataFrame 的行为差异? 假设我有一个DataFrame: frame = pd.DataFram
Pandas 提供两种不同关联函数的原因是什么? DataFrame.corrwith(other, axis=0, drop=False): Correlation between rows or
我正在使用下面的代码关联两个数据框。基本上,从一个数据框 (a) 中选择一组列,从另一个数据框 (b) 中选择一列。它工作得很好,除了我需要用长矛手的选项来做。我将不胜感激任何意见或想法。谢谢...
我想以高效的方式在 x1 和 y 中的三列中的每一列之间获取 pearson r。 pd.corrwith() 似乎只能针对具有完全相同列标签的列进行计算,例如x 和 y。 这似乎有点不切实际,因为我
我是一名优秀的程序员,十分优秀!