린스토리

[Pandas] 월별/주별/일별 데이터 통계내기 (Resample) 본문

Python/Pandas

[Pandas] 월별/주별/일별 데이터 통계내기 (Resample)

rinaaaLee 2022. 6. 28. 11:10

Pandas DataFrame은 왠만한 기능이 다 갖춰져 있어 데이터 가공이나 통계에 사용하기 매우 편리하다. 

오늘은 기능 중 Time 기준으로 알아서 월별/주별/일별로 통계를 내주는 기능에 대해 알아보고자 한다.

우선, 다음과 같은 table이 있다고 생각해보자.

test_df

table에서 time을 기준으로 월별 통계를 낸다고 해보자. 

이걸 일일히 time의 month를 추출해서 1,2,3,4,5월에 해당하는 데이터만 따와서 평균이나 합계를 구할 필요없이 

pandas에서 제공하는 아주 유용한 함수를 사용하면 된다.

바로, "Resample" 이라는 함수이다. 

 

RESAMPLE

Pandas 공식 홈페이지에 적혀있는 resample 설명

resample 함수는 time-series data에 적용하기 위한 함수이다. 자세한 설명은 여기에서 확인하면 된다.

 

그럼 바로 적용해보자!

monthly_mean_df = df.resample('M', on='time').mean()

#########월별 / 주별 / 일별
## 월별 : 'M'
## 주별 : 'W-Mon' (만약 일요일을 주의 시작으로 하고싶다면, 'W-Sun')
## 일별 : 'D'

######### 기준이 되는 time 컬럼 지정
## on= 'time'

######### 평균이 아닌 합계를 하고싶다면, 
## .mean() -> .sum()
## or, .count() 등 하고자 하는 통계 함수를 적으면 된다.

이렇게 적용하면 결과는 다음과 같이 나온다.

순서대로, 주별 평균 / 월별 평균 / 월별 합계

 

짠!!!

이렇게 편리하게 제공하는 함수로 코드를 더욱 더 간결하고 쉽게 짤 수 있다. 

Comments