데이터분석

날짜 형식 데이터를 연, 월, 일로 변경하기

still..epochs 2023. 8. 10. 18:00

데이터를 다루다보면, 다음과 같은 데이터를 만날 때가 있다.

이런 형식의 데이터일 경우, 매번 습관적으로 연, 월, 일, 시 등으로 나누어 컬럼을 생성하여 데이터를 분석한다. 그렇다면 데이터를 왜 이러한 형식으로 변경하여 데이터 분석을 진행하는 것일까? 아래와 같은 장점이 존재하기 때문이다.(대부분 단점은 없는듯..?)

  1. 데이터 분석 및 시각화 : 연, 월, 일로 분리된 컬럼은 데이터를 시각화 할 때 더 쉽게 할 수 있도록 한다.
  2. 집계 및 그룹화 : 매월 판매량을 합산하거나 연간 통계를 생성할 때 유용하다.
  3. 시계열 데이터 분석: 연, 월, 일로 분리된 컬럼을 사용하면 시계열 패턴을 이해하고 예측하는 데 도움이 된다.
  4. 날짜 계산 및 조작 : 연, 월, 일로 분리된 컬럼을 사용하면 날짜와 관련된 계산 및 조직이 쉬워진다.
  5. 데이터 필터링 : 특정 기간의 데이터를 필터링하거나 쿼리를 사용하는 데 용이하다.
  6. 데이터 형식 표준화 : 데이터가 서로 다른 형식으로 저장되어 있을 때, 연, 월, 일로 분리된 컬럼을 사용하여 데이터 형식을 표준화하고 일관성을 유지할 수 있다.

그렇다면 데이터프레임에서 연, 월, 일로 해당 컬럼을 분리하고자 할 때 어떻게 할 수 있을까? 여러가지 방법이 있겠지만 판다스를 활용한 방법을 소개해볼까 한다.

 

먼저, 우리가 변경하려고하는 데이터 컬럼이 object 형식이면 pandas가 제공하는 pd.to_datetime 을 사용하여 컬럼의 데이터 타입을을 변경해 준다.(데이터 타입을 변경하지 않으면 뒤 코드를 실행할 때 오류가 발생함)

 

df['DATE'] = pd.to_datetime(df.DATE, format='%d-%m-%Y')

이렇게 데이터 컬럼의 데이터 타입을 변경하면, 데이터의 포멧이 우리가 익히 알고있는 연, 월, 일 표기로 변경된다.

그리고 이제 연, 월, 일로 분리된 컬럼을 만들어보자.

df['MONTH'] = df['DATE'].dt.month
df['YEAR'] = df['DATE'].dt.year
df['DAY'] = df['DATE'].dt.day
df.head(10)

해당 코드를 실행하면, 다음와 같은 분리된 컬럼을 얻을 수 있다.

 

판다스 기능 무궁무진... 그저 정진해보자