서울시 자전거 데이터 분석 MaTableau | Matplotlib에서 Tableau로 시각화 업그레이드
이번에는 서울시 자전거 데이터를 주 간격으로 대여 수를 분석해보겠습니다.
Matplotlib
Read_excel
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
data = pd.read_excel('Your_Path')
data['Date'] = pd.to_datetime(data['Date'])
data['Weekday'] = data['Date'].dt.weekday
weekday_names = ['월', '화', '수', '목', '금', '토', '일']
data['Weekday_Name'] = data['Weekday'].map(lambda x: weekday_names[x])
weekday_avg = data.groupby('Weekday_Name')['Rented Bike Count'].sum()
weekday_avg = weekday_avg.reindex(weekday_names)
weekday_avg
먼저 데이터 처리 과정을 살펴보겠습니다. Pandas를 활용해 Excel 파일을 불러온 후, 날짜 데이터를 datetime 형식으로 변환했습니다. 그 다음 각 날짜를 요일로 변환하는 작업을 진행했는데요, 0부터 6까지의 숫자를 우리가 익숙한 '월'부터 '일'까지의 한글 요일로 매핑했습니다.
Pandas의 핵심 기능인 groupby를 사용해서 요일별 자전거 대여 현황을 분석했습니다. groupby는 데이터를 특정 기준으로 묶어주는 편리한 함수인데요, 이를 통해 각 요일별 전체 대여 건수를 한눈에 파악할 수 있게 되었습니다.
여기서 주목할 점은 groupby 함수를 사용할 때는 반드시 sum()이나 mean() 같은 집계 함수를 함께 사용해야 한다는 것입니다. 이는 마치 map() 함수를 사용할 때 적절한 개수의 변수가 필요한 것과 비슷한 원리입니다.
이러한 과정을 거쳐 최종적으로 weekday_avg 변수에는 각 요일별 총 자전거 대여 횟수가 깔끔하게 정리되어 있습니다. 이 데이터를 통해 요일별 자전거 이용 패턴을 쉽게 파악할 수 있습니다.
최종적으로 이러한 누적 결과를 얻을 수 있었습니다. 이번에는 Tableau로 이 집계를 비교해보고 실제로 같은 값이 나오는지 확인해보겠습니다.
Tableau
이전 게시물 처럼 로그인 후 데이터를 불러옵니다.
왼쪽 테이블에 Date형식의 실제 이모티콘도 Date형식 처럼 표현되어 있는 차원값이 있습니다.
이 값을 간단하게 Tableau에서는 클릭 하나로 요일별로 바꿀 수 있습니다.
Date 열에 직접 추가하시면 default로 설정되는 값이 있을텐데 우클릭 하셔서 요일로 바꿔주시면 간편하게 요일별 데이터로 변환됩니다.
Matplotlib에서는 이 과정을 매우 복잡하게 필터링하고 마지막에 reindex까지 해야했지만 Tableau같은 경우에는 매우 간단하게 전환할 수 있습니다. 이제 단순하게 열을 정했으니 행에다가 대여 수를 올려주면
이런 그래프가 바로 표현됩니다. 저 합계 또한 default 이며 우클릭으로 평균, 분산으로 표현할 수도 있습니다.
하지만 Tableau가 자동으로 변환한 것과 직접 Python으로 변환한 것의 차이가 있는 지 궁금하여 실제 값을 비교해봤습니다.
Tableau가 집계한 일요일 총 자전거 대여수는 780,194 하지만 Python에서 집계된 일요일 총 자전거 대여수는 798,295
약 18000의 손실이 있음을 확인하고 문제점을 확인했습니다.
문제점을 파악할 때 예상한 문제는 다음과 같았습니다.
1.요일 계산 방식의 차이
2.데이터 그룹화의 차이
3.데이터 정렬의 차이
4.데이터 필터링의 차이
5.결측치 처리의 차이
6.시간대 차이
다음 게시글에서는 이 문제를 해결하기 위해 접근했던 과정을 남기겠습니다
'Matplotlib → Tableau' 카테고리의 다른 글
Seoul Cycle Dataset Analyze IlI (1) | 2025.02.06 |
---|---|
Seoul Cycle Dataset Analyze | discovering error point (0) | 2025.02.04 |
Seoul Cycle Dataset Analyze I (2) | 2025.02.04 |
Matplotlib에서 Tableau로: 데이터 시각화의 새로운 차원 (0) | 2025.02.02 |