Python

Time Series 데이터를 처리할 때 사용하는 resample 함수

yugyeong 2023. 1. 3. 15:35

Pandas 데이터프레임 datetime으로 형변환 하기

  • pandas.to_datetime(데이터, format= '표시 할 형식')
    • 데이터의 타입을 datetime으로 변경
    • format : 기존의 데이터의 형식을 지정, 어떤 부분이 년월일 등등인지 사전에 지정
      • % 사용 :  예) %m/ %d /Y %I:%M:%S %p > 01/03/2023 3:33:38 PM
      • 문자사용 : 예) yyyy-MM-dd HH:mm:ss > 2023-01-03 15:33:38
pd.to_datetime(chicago_df['Date'], format= '%m/%d/%Y %I:%M:%S %p')

 

pandas.dt의 사용

dt는 시리즈(1차원 배열)의 형태에서 사용 가능하다.

만약 데이터프레임(2차원 배열)에서 사용 할 경우에는,

해당 컬럼만 호출하여서 dt를 사용 할 수 있다.

  • dt.date : 해당 날짜 표시 (예: 2022-05-11)
  • dt.year : 해당 날짜의 년도 4자리로 표시 (예: 2022)
  • dt.quarter : 해당 날짜의 분기 표시 (예: 2)
  • dt.month : 해당 날짜의 월 표시 (예: 5)
  • dt.month_name : 해당 날짜의 월을 영문자로 표시 (예: May)
  • dt.weekday : 해당 날짜의 요일을 숫자로 표시 (예: 월요일-> 0)
  • dt.weekday_name(=day_name) : 해당 날짜의 요일을 영문자로 표시 (예: 월요일-> Mon)
  • dt.day : 해당 날짜의 일 표시 (11)
  • dt.time : 해당 시간 표시 (예: 18:08:07)
  • dt.hour : 해당 시간의 시 표시 (예: 18)
  • dt.minute : 해당 시간의 분 표시 (예: 08)
  • dt.second : 해당 시간의 초 표시 (예: 07)

 

resample 함수 이용하기

 

groupby 함수를 이용해서는 날짜데이터를 바로 년,월,일,시,분,초 단위 등으로 묶을 수 없다.

따라서, 먼저 Date 컬럼을 인덱스로 만들어준다.

 

데이터프레임명.index = 데이터프레임명[' date 컬럼명']

.index 를 이용하면 컬럼을 인덱스로 설정할 수 있다.

chicago_df.index = chicago_df['Date']

 

그 후에 resample 함수를 이용하여서 년단위, 월단위 등등으로 데이터를 묶어서 처리를 할 수 있다.

 

 
  • DataFrame.resample('설정값').size() : 날짜/시간 타입을 그룹화하여 단위별 출력
  • groupby로는 datetime 타입의 특정 단위별로 그룹화 불가

 

아래의 예시는 년도별로 집계하여서 나타낸 결과값이다.