考虑使用一个匿名的{{{1}>和一个列中的一个函数,其中每个列:
随机数据(种子繁殖)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)})
复制皮尔逊相关
^{pr2}$
斯皮尔曼相关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值的斯皮尔曼系数from scipy.stats import spearmanr, pearsonr
# SERIES OF TUPLES ( 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)