English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Pandas 윈도우 함수의 연산 예제
숫자 데이터를 처리하기 위해 Pandas는 루킹, 확장, 지수加权 움직임 등 다양한 변이를 제공합니다. 이 중에는 합, 평균, 중앙값, 변异, 상관계수 등이 포함됩니다.
이제, DataFrame 객체에 대해 각각을 어떻게 적용할지 배우겠습니다.
이 기능은 일련의 데이터에 적용할 수 있습니다. window = n 파라미터를 지정하고, 그 위에 적절한 통계 함수를 적용합니다.
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10, 4, 인덱스 = pd.date_range('1/1/2000', periods=10, 컬럼 = ['A', 'B', 'C', 'D']) print(df.rolling(window=3).mean())
결과는 다음과 같습니다:
A B C D 2000-01-01 NaN NaN NaN NaN 2000-01-02 NaN NaN NaN NaN 2000-01-03 0.434553 -0.667940 -1.051718 -0.826452 2000-01-04 0.628267 -0.047040 -0.287467 -0.161110 2000-01-05 0.398233 0.003517 0.099126 -0.405565 2000-01-06 0.641798 0.656184 -0.322728 0.428015 2000-01-07 0.188403 0.010913 -0.708645 0.160932 2000-01-08 0.188043 -0.253039 -0.818125 -0.108485 2000-01-09 0.682819 -0.606846 -0.178411 -0.404127 2000-01-10 0.688583 0.127786 0.513832 -1.067156
윈도우 크기가3따라서 앞 두 요소는 비어 있으며, 세 번째 요소부터는 n 값이며, n-1와 n-2요소의 평균 값이므로, 위의 여러 기능을 적용할 수 있습니다.
이 기능은 일련의 데이터에 적용할 수 있습니다. min_periods = n 파라미터를 지정하고, 적절한 통계 함수를 적용합니다.
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10, 4, 인덱스 = pd.date_range('1/1/2000', periods=10, 컬럼 = ['A', 'B', 'C', 'D']) print(df.expanding(min_periods=3).mean())
결과는 다음과 같습니다:
A B C D 2000-01-01 NaN NaN NaN NaN 2000-01-02 NaN NaN NaN NaN 2000-01-03 0.434553 -0.667940 -1.051718 -0.826452 2000-01-04 0.743328 -0.198015 -0.852462 -0.262547 2000-01-05 0.614776 -0.205649 -0.583641 -0.303254 2000-01-06 0.538175 -0.005878 -0.687223 -0.199219 2000-01-07 0.505503 -0.108475 -0.790826 -0.081056 2000-01-08 0.454751 -0.223420 -0.671572 -0.230215 2000-01-09 0.586390 -0.206201 -0.517619 -0.267521 2000-01-10 0.560427 -0.037597 -0.399429 -0.376886
ewm 일련의 데이터에 적용됩니다. com, span, halflife 매개변수 중 하나를 지정하고 그 위에 적절한 통계 함수를 적용합니다. 이는 지수적으로 가중치를 배분합니다.
import pandas as pd import numpy as np df = pd.DataFrame(np.random.randn(10, 4, 인덱스 = pd.date_range('1/1/2000', periods=10, 컬럼 = ['A', 'B', 'C', 'D']) print(df.ewm(com=0.5).mean())
결과는 다음과 같습니다:
A B C D 2000-01-01 1.088512 -0.650942 -2.547450 -0.566858 2000-01-02 0.865131 -0.453626 -1.137961 0.058747 2000-01-03 -0.132245 -0.807671 -0.308308 -1.491002 2000-01-04 1.084036 0.555444 -0.272119 0.480111 2000-01-05 0.425682 0.025511 0.239162 -0.153290 2000-01-06 0.245094 0.671373 -0.725025 0.163310 2000-01-07 0.288030 -0.259337 -1.183515 0.473191 2000-01-08 0.162317 -0.771884 -0.285564 -0.692001 2000-01-09 1.147156 -0.302900 0.380851 -0.607976 2000-01-10 0.600216 0.885614 0.569808 -1.110113
윈도우 함수는 주로 데이터에서 평滑한 곡선을 통해 그래픽 방식으로 추세를 찾는 데 사용됩니다. 일상 데이터가 많이 변화하며 많은 데이터 포인트가 사용 가능하다면, 샘플과 그래프를 사용하는 것이 하나의 방법이며, 결과에 윈도우 계산을 적용하고 그래프를 그리는 것이 또 다른 방법입니다. 이러한 방법을 통해 곡선이나 추세를 평滑할 수 있습니다.