롤링 윈도우에서 집계 (mean()
사용)는 원본 열과 동일한 색인을 사용하여 pandas Series 객체를 반환합니다. 단순히 롤링 윈도우를 집계 한 다음 원래 열을 집계 된 값으로 나눌 수 있습니다.
import numpy as np
import pandas as pd
df = pd.DataFrame(np.arange(30), columns=['A'])
df
# returns:
A
0 0
1 1
2 2
...
27 27
28 28
29 29
동일한 인덱스의 시리즈를 얻으려면 롤링 평균을 사용할 수 있습니다.
df.A.rolling(window=7).mean()
# returns:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 3.0
7 4.0
...
26 23.0
27 24.0
28 25.0
29 26.0
가 색인되어 있기 때문에, 당신이 원하는 결과를 df.A
하여 간단한 격차를 얻을 수 있습니다.
df.A.rolling(window=7).mean()/df.A
# returns:
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
5 NaN
6 0.500000
7 0.571429
8 0.625000
9 0.666667
10 0.700000
11 0.727273
12 0.750000
13 0.769231
14 0.785714
15 0.800000
16 0.812500
17 0.823529
18 0.833333
19 0.842105
20 0.850000
21 0.857143
22 0.863636
23 0.869565
24 0.875000
25 0.880000
26 0.884615
27 0.888889
28 0.892857
29 0.896552
자세한 설명을 읽어 주셔서 감사합니다. 이 방법이 효과가있을뿐만 아니라 판다를 올바르게 사용하는 방법을 더 잘 이해할 수 있습니다. 그것은 지금 총체적인 의미를가집니다. 이와 같은 문제를 다르게 처리하는 다른 언어에서 왔기 때문에 이전에 이해할 수 없었습니다. – Tony