Pandas에서 이동 평균을 계산하는 방법


이동 평균은 단순히 시계열의 이전 기간 수에 대한 평균입니다.

Pandas DataFrame에서 하나 이상의 열에 대한 이동 평균을 계산하려면 다음 구문을 사용할 수 있습니다.

 df[' column_name ']. rolling ( rolling_window ). mean ()

이 튜토리얼에서는 이 기능의 실제 사용에 대한 몇 가지 예를 제공합니다.

예: Pandas에서 이동 평균 계산

다음과 같은 팬더 DataFrame이 있다고 가정합니다.

 import numpy as np
import pandas as pd

#make this example reproducible
n.p. random . seeds (0)

#create dataset
period = np. arange (1, 101, 1)
leads = np. random . uniform (1, 20, 100)
sales = 60 + 2*period + np. random . normal (loc=0, scale=.5*period, size=100)
df = pd. DataFrame ({' period ': period, ' leads ': leads, ' sales ': sales})

#view first 10 rows
df. head (10)

   period leads sales
0 1 11.427457 61.417425
1 2 14.588598 64.900826
2 3 12.452504 66.698494
3 4 11.352780 64.927513
4 5 9.049441 73.720630
5 6 13.271988 77.687668
6 7 9.314157 78.125728
7 8 17.943687 75.280301
8 9 19.309592 73.181613
9 10 8.285389 85.272259

다음 구문을 사용하여 이전 5개 기간에 대한 “판매액”의 이동 평균을 포함하는 새 열을 만들 수 있습니다.

 #find rolling mean of previous 5 sales periods
df[' rolling_sales_5 '] = df[' sales ']. rolling (5). mean ()

#view first 10 rows
df. head (10)

	period leads sales rolling_sales_5
0 1 11.427457 61.417425 NaN
1 2 14.588598 64.900826 NaN
2 3 12.452504 66.698494 NaN
3 4 11.352780 64.927513 NaN
4 5 9.049441 73.720630 66.332978
5 6 13.271988 77.687668 69.587026
6 7 9.314157 78.125728 72.232007
7 8 17.943687 75.280301 73.948368
8 9 19.309592 73.181613 75.599188
9 10 8.285389 85.272259 77.909514

기간 5에 표시된 연속 판매 평균이 이전 5개 기간의 평균인지 수동으로 확인할 수 있습니다.

5번째 기간의 이동 평균: (61.417+64.900+66.698+64.927+73.720)/5 = 66.33

유사한 구문을 사용하여 여러 열의 이동 평균을 계산할 수 있습니다.

 #find rolling mean of previous 5 leads periods 
df[' rolling_leads_5 '] = df[' leads ']. rolling (5). mean ()

#find rolling mean of previous 5 leads periods
df[' rolling_sales_5 '] = df[' sales ']. rolling (5). mean ()

#view first 10 rows
df. head (10)

	period leads sales rolling_sales_5 rolling_leads_5
0 1 11.427457 61.417425 NaN NaN
1 2 14.588598 64.900826 NaN NaN
2 3 12.452504 66.698494 NaN NaN
3 4 11.352780 64.927513 NaN NaN
4 5 9.049441 73.720630 66.332978 11.774156
5 6 13.271988 77.687668 69.587026 12.143062
6 7 9.314157 78.125728 72.232007 11.088174
7 8 17.943687 75.280301 73.948368 12.186411
8 9 19.309592 73.181613 75.599188 13.777773
9 10 8.285389 85.272259 77.909514 13.624963

Matplotlib을 사용하여 총 매출과 이동 매출 평균을 시각화하는 빠른 선 그래프를 만들 수도 있습니다.

 import matplotlib. pyplot as plt
plt. plot (df[' rolling_sales_5 '], label=' Rolling Mean ')
plt. plot (df[' sales '], label=' Raw Data ')
plt. legend ()
plt. ylabel (' Sales ')
plt. xlabel (' Period ')
plt. show ()

Python에서 팬더의 이동 평균 그리기

파란색 선은 5기간 매출 이동평균을 나타내고 주황색 선은 원시 매출 데이터를 나타냅니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

팬더에서 슬라이딩 상관 관계를 계산하는 방법
Pandas에서 열의 평균을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다