我想计算两个系列之间的corr。我将它们定义为:
s = pd.Series([1,2,3,4,5,6,7])
s2 = pd.Series([2,3,4])
我想要的是一个相关数列,即值是s.rolling(3)与s2之间的相关系数
例如:result的第一个元素应为[1,2,3] .corr(s2),第二个应为[2,3,4] .corr(s2),....
我阅读了rolling的用法示例,但是我认为它是内部方法rolling(3).corr无法解决此问题,有没有好的方法可以做到这一点?
您可以滚动申请吗:
from scipy.stats import pearsonr
s.rolling(3).apply(lambda x: pearsonr(x,s2)[0])
输出:
0 NaN
1 NaN
2 1.0
3 1.0
4 1.0
5 1.0
6 1.0
dtype: float64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句