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()

📌 분석 및 인사이트

그래프를 통해 확인할 수 있는 주요 패턴은 다음과 같습니다.

  1. 출근 시간대(7~9시)
    • 승차 인원이 급증하며 가장 높은 값을 기록
    • 많은 사람들이 아침 출근을 위해 지하철을 이용하는 것을 알 수 있음
  2. 퇴근 시간대(18~20시)
    • 승차보다는 하차 인원이 많아짐
    • 직장에서 집으로 귀가하는 시간이기 때문에 자연스러운 패턴
  3. 심야 시간(23시 이후)
    • 승차 및 하차 인원이 급격히 줄어듦
    • 대부분의 사람들이 이동을 마치고 대중교통 이용이 줄어드는 시점

🚀 마무리

이번 분석을 통해 시간대별 지하철 이용량의 변화를 시각적으로 확인할 수 있었습니다.
특히 출퇴근 시간대에는 지하철이 가장 혼잡하며, 심야에는 비교적 여유로운 모습을 보였습니다.

앞으로 특정 노선이나 역별 데이터를 분석하면 더욱 유의미한 인사이트를 얻을 수 있을 것 같습니다. 🚉🔥