Recent Posts
Recent Comments
Archives
반응형
250x250
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Today
Yesterday

Total
05-03 01:47
관리 메뉴

Hey Tech

[Python] 월 단위 데이터 그룹화 및 시각화하기 본문

AI & 빅데이터/데이터 분석 with Python

[Python] 월 단위 데이터 그룹화 및 시각화하기

Tony Park 2022. 8. 31. 23:02
728x90
반응형

💡 들어가며

본 포스팅에서는 데이터를 월 단위로 카운팅하고 이를 시각화하는 방법을 소개합니다.

1.  패키지 import

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

2.  데이터셋 불러오기

포스팅에서 사용되는 데이터셋은 공유가 불가하오니 학습 목적으로만 봐주시길 바랍니다.

DATASET = pd.read_csv('./dataset_app_review.csv')
DATASET.head()

데이터셋 일부

3.  데이터 타입 확인

DATASET.dtypes

아래와 같이, 날짜 정보(date)는 현재 정수형(int)입니다.

편리하게 날짜형 데이터를 처리하기 위하여 이를 datetime 타입으로 바꿔줄 필요가 있습니다.

데이터 타입

4.  데이터 타입 변경

"연-월-일" 형태로 datetime 칼럼에 날짜형 데이터를 추가합니다.

DATASET['datetime'] = DATASET['date'].apply(lambda x: pd.to_datetime(str(x), format='%Y-%m-%d'))

데이터 타입 변경

5.  인덱스 세팅

날짜 데이터 기준으로 인덱스를 설정합니다.

DATASET.set_index(DATASET['datetime'], inplace=True)
DATASET

인덱스 세팅

6.  데이터 카운트용 칼럼 생성

데이터 개수를 카운트하기 위한 칼럼을 생성합니다.

DATASET['CNT'] = 1

7.  월별 데이터 카운트

resample 함수에 옵션 'M'을 설정하고 CNT 칼럼을 합계하여 월 단위로 데이터 개수를 카운트합니다.

추가로, fillna(0) 함수를 사용하여 누락된 월에는 값을 0으로 채워줍니다.

dataset_m = DATASET.resample('M')['CNT'].agg(np.sum).fillna(0)
dataset_m

월 단위 데이터 개수 카운트

(Optional) 8.  주별 데이터 카운트

dataset_w = DATASET.resample('W-MON')['CNT'].agg(np.sum).fillna(0)
dataset_w

주 단위 데이터 개수 카운트

9.  데이터 시각화

matplotlib 패키지를 활용하여, x축은 월 정보, y축은 데이터 건수로 데이터를 시각화하였습니다.

x = dataset_m.index # x축(시간 정보)
y = dataset_m # y축 값(데이터 개수)

plt.figure(figsize = (60, 12)) # 전체 figure 크기
plt.plot(dataset_m) # 그래프 시각화

# 값 시각화
for i, v in enumerate(x):
    plt.text(v, y[i], y[i],
             fontsize = 12, 
             color = 'blue',
             horizontalalignment ='center',
             verticalalignment = 'bottom')
plt.xticks(x, fontsize = 12, rotation = 15) # x축
plt.yticks(fontsize = 12) # y축 눈금
plt.xlabel('Time', fontsize = 20) # x축 이름
plt.ylabel('CNT', fontsize = 20) # y축 이름

결과는 아래와 같습니다.

데이터 시각화 결과

눈에 쉽게 띄는 점은, 2019년도 7월에 데이터 건수가 급증하는 것을 확인할 수 있습니다.

해당 원인과 이에 따른 대응 방안은 데이터 분석 목적, 데이터 종류 및 특성, 산업군 등에 따라 천차만별입니다.

이처럼, 시계열 데이터를 시각화함으로써 다양한 인사이트를 도출해 볼 수 있습니다.

📚 참고할 만한 포스팅

1.  [Python] 숫자형/문자열 데이터를 날짜형으로 바꾸기(pd.to_datetime)
2.  [Python] 월 정보, 요일 정보, 시간 정보, 특정 기간 데이터 추출하기 
3.  [Python] 월 단위 데이터 그룹화 및 시각화하기
4.  [Python] 주 단위 데이터 그룹화 및 시각화하기


오늘은 파이썬을 활용하여 데이터를 월 단위로 카운트하고 시각화하는 방법을 알아봤습니다.

포스팅 내용에 오류가 있다면 아래에 댓글 남겨주시길 바랍니다.

그럼 오늘도 즐거운 하루 보내시길 바랍니다 :)

고맙습니다😊

728x90
반응형
Comments