대중교통 데이터
대중교통 데이터 내려 받기
지하철 유무임별 이용현황 데이터 정제(데이터 전처리)
- row는 리스트형 데이터이고 이 리스트의 각 요소는 문자열 데이터인 것을 확인
- 인덱스 4부터 7까지는 숫자이므로 정수로 변환
f = open('subway.csv', encoding='cp949')
data = csv.reader(f)
next(data)
for row in data:
for idx in range(4,8):
row[idx] = int(row[idx])
print(row)
f.close()
['Jun-23', '신림선', '4411', '관악산(서울대)', 62350, 64350, 41685, 42081]
유임승차 비율이 가장 높은 역은 어디일까?
- 테이터를 읽어 온다.
- 필요시 데이터를 정제(데이터 전처리)를 한다.
- 모든 역의 데이터를 바탕으로 각 역의 유임승차율을 구한다.
- 무임승차율이 가장 높은 역과 가장 낮은 역을 찾는다.
- 적절한 시각화 방법으로 보고서에 들어갈 그래프를 그린다.
- 유임승차인원의비율=유임승차인원/무임승차인원
import csv
f = open('subway.csv', encoding = 'cp949')
data = csv.reader(f)
next(data)
rate = []
name_station =[]
for row in data:
for idx in range(4,8):
row[idx] = int(row[idx])
#if row[6] != 0:
rate.append( row[4]/(row[4] + row[6]) )
name_station.append(row[3])
for idx in range(len(name_station)):
print('{} : {:.2f}%'.format(name_station[idx], rate[idx]*100))
f.close()
샛강 : 80.46%
대방 : 79.04%
서울지방병무청 : 72.39%
보라매 : 78.82%
보라매공원 : 72.16%
보라매병원 : 73.73%
당곡 : 71.73%
신림 : 67.70%
서원 : 75.94%
서울대벤처타운 : 76.29%
관악산(서울대) : 59.93%
최고 비율
import csv
f = open('subway.csv', encoding = 'cp949')
data = csv.reader(f)
next(data)
rate = []
name_station =[]
for row in data:
for idx in range(4,8):
row[idx] = int(row[idx])
rate.append( row[4]/(row[4] + row[6]) )
name_station.append(row[3])
f.close()
for idx in range(len(rate)):
if rate[idx] == max(rate):
print(name_station[idx],':', rate[idx]*100, '%')
지축 : 100.0 %
연신내 : 100.0 %
까치울 : 100.0 %
춘의 : 100.0 %
신중동 : 100.0 %
95% 이상
import csv
f = open('subway.csv', encoding = 'cp949')
data = csv.reader(f)
next(data)
rate = []
name_station =[]
name_line =[]
for row in data:
for idx in range(4,8):
row[idx] = int(row[idx])
rate.append( row[4]/(row[4] + row[6]) )
name_station.append(row[3])
name_line.append(row[1])
f.close()
for idx in range(len(rate)):
if rate[idx] >= 0.95:
print( name_line[idx] + '-' + name_station[idx],':', rate[idx]*100, '%')
2호선-한양대 : 95.65348153810488 %
2호선-홍대입구 : 95.06278500780586 %
3호선-충무로 : 98.21428571428571 %
일산선-지축 : 100.0 %
6호선-연신내 : 100.0 %
7호선-까치울 : 100.0 %
7호선-춘의 : 100.0 %
7호선-신중동 : 100.0 %
공항철도 1호선-홍대입구 : 95.21693034404622 %
유무임 승하차 인원이 가장 많은 지역
import csv
f = open('subway.csv', encoding = 'cp949')
data = csv.reader(f)
next(data)
population=[]
maxs_pop = [0] * 4
names_station = [''] * 4
labels = ['최고 유임 승차 인원', '최고 유임 하차 인원', '최고 무임 승차 인원', '최고 무임 하차 인원']
for row in data:
for idx in range(4,8):
row[idx] = int(row[idx])
if row[idx] > maxs_pop[idx-4]:
maxs_pop[idx-4] = row[idx]
names_station[idx-4] = row[3] + "-" + row[1]
for i in range(4):
print( labels[i] + ':'+names_station[i]+':', maxs_pop[i] )
최고 유임 승차 인원:강남-2호선: 2123826
최고 유임 하차 인원:홍대입구-2호선: 2092841
최고 무임 승차 인원:종로3가-1호선: 304455
최고 무임 하차 인원:제기동-1호선: 29575
'빅데이터 분석가 양성과정 > Python' 카테고리의 다른 글
인구 공공 데이터 (시각화) (0) | 2024.07.10 |
---|---|
기온 공공 데이터 (2) | 2024.07.10 |
'한국인의 삶 파악하기' 분석 (0) | 2024.07.10 |
데이터 가공하기 (0) | 2024.07.10 |
외부 데이터 활용 (0) | 2024.07.10 |