Why Not SW CAMP 5기/수업 기록
[2월 1주차-2/6(5)]🚇 지하철 시간대별 승하차 인원 분석
rubii
2025. 2. 6. 17:25
이번 분석에서는 지하철 시간대별 승하차 인원 데이터를 활용하여 이를 시각적으로 확인해 보겠습니다.
📥 데이터 불러오기 및 전처리
먼저, subwaytime.csv 파일을 불러와 데이터를 정제합니다. 이 데이터에는 각 역의 시간대별 승하차 인원 정보가 포함되어 있으며, 헤더가 두 줄로 구성되어 있으므로 next() 함수를 사용해 제거해 줍니다.
import csv
import matplotlib.pyplot as plt
f = open('./data/subwaytime.csv')
data = csv.reader(f)
next(data) # 첫 번째 헤더 제거
next(data) # 두 번째 헤더 제거
🔍 시간대별 승하차 인원 누적
데이터를 보면, 승차 및 하차 인원 정보가 시간대별로 번갈아 저장되어 있습니다.
예를 들어, 23시 승차 데이터는 4번째 열에서 시작하며, 이후 2개씩 증가하는 구조입니다. 이를 고려하여 데이터를 정리해 보겠습니다.
s_in = [0] * 24 # 시간대별 승차 인원 저장 리스트
s_out = [0] * 24 # 시간대별 하차 인원 저장 리스트
for row in data:
row[4:] = map(int, row[4:]) # 숫자 데이터 변환
for i in range(24):
s_in[i] += row[4 + i * 2] # 시간대별 승차 인원 누적
s_out[i] += row[5 + i * 2] # 시간대별 하차 인원 누적
이제 s_in에는 각 시간대별 총 승차 인원, s_out에는 각 시간대별 총 하차 인원이 저장되었습니다.
📊 데이터 시각화
수집한 데이터를 그래프로 표현하면 시간대별 지하철 이용 패턴을 한눈에 파악할 수 있습니다.
시간대는 4시부터 27시(새벽 3시)까지로 표시하여 직관적으로 이해할 수 있도록 했습니다.
plt.figure(dpi=300)
plt.rc('font', family='Malgun Gothic')
plt.title('지하철 시간대별 승하차 인원 추이')
plt.plot(s_in, label='승차', color='blue')
plt.plot(s_out, label='하차', color='red')
plt.grid()
plt.legend()
plt.xticks(range(24), range(4, 28)) # x축을 4시~27시(새벽 3시)로 표시
plt.show()
📌 분석 및 인사이트
그래프를 통해 확인할 수 있는 주요 패턴은 다음과 같습니다.
- 출근 시간대(7~9시)
- 승차 인원이 급증하며 가장 높은 값을 기록
- 많은 사람들이 아침 출근을 위해 지하철을 이용하는 것을 알 수 있음
- 퇴근 시간대(18~20시)
- 승차보다는 하차 인원이 많아짐
- 직장에서 집으로 귀가하는 시간이기 때문에 자연스러운 패턴
- 심야 시간(23시 이후)
- 승차 및 하차 인원이 급격히 줄어듦
- 대부분의 사람들이 이동을 마치고 대중교통 이용이 줄어드는 시점
🚀 마무리
이번 분석을 통해 시간대별 지하철 이용량의 변화를 시각적으로 확인할 수 있었습니다.
특히 출퇴근 시간대에는 지하철이 가장 혼잡하며, 심야에는 비교적 여유로운 모습을 보였습니다.
앞으로 특정 노선이나 역별 데이터를 분석하면 더욱 유의미한 인사이트를 얻을 수 있을 것 같습니다. 🚉🔥