롤링 팬더 시리즈와 고정 시리즈에 대한 상관 관계를 얻는 방법은 무엇입니까?
Nov 19 2020
두 시리즈 사이의 corr을 계산하고 싶습니다. 나는 그들을 다음과 같이 정의했다.
s = pd.Series([1,2,3,4,5,6,7])
s2 = pd.Series([2,3,4])
내가 원하는 것은 상관 관계 시리즈이며, 값은 s.rolling (3)과 s2 사이의 corr입니다.
예 : 결과의 첫 번째 요소는 [1,2,3] .corr (s2), 두 번째 요소는 [2,3,4] .corr (s2), .....
롤링의 사용 예를 읽었지만 내부 메서드 rolling (3) .corr이 이것을 해결할 수 없다고 생각합니다.이 작업을 수행하는 좋은 방법이 있습니까?
답변
QuangHoang Nov 19 2020 at 21:59
롤링 적용을 할 수 있습니까?
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
WBM Nov 19 2020 at 21:50
for 루프를 사용하지 않는 이유는 무엇입니까?
import pandas as pd
s = pd.Series([1,2,3,4,5,6,7])
s2 = pd.Series([2,3,4])
window_size = len(s2)
output = []
for i in range(len(s)-window_size):
output.append(s[i:window_size+i].corr(s2))