1. 각각의 시간대에 가장 승차인원이 가장 많은 역, 하차인원이 가장 많은 역을 구하시오
Ex)
[ [4시, 역이름, 승차인원, 역이름, 하차인원]
[5시, 역이름, 승차인원, 역이름, 하차인원]
...................................... ]
절차
1) 서로다른 엘리먼트(요소)의 동일 인덱스를 비교해야 함
for idx, row in enumerate temp[2:] :
for idx2, row2 in enumerate row[4:52] :
2) 그러기 위해서는 총 48개의 데이터가 필요함
pol=[0, 0, 0, 0, 0, 0, 0, ....]
mx=[0]*48 을 만들면 mx에 48개의 0 리스트가 뜬다.
그런데 if문을 활용해서 최대값을 구해보자.
for문에서 mx[idx]<int(row2.replace(',',''))는 다음과 같이 비교된다
mx[0]< 668 >>>> int(row2.replace(',',''))는 668과 비교해서 작기때문에 mx[idx2] 값에 668이 들어간다.
mx[1]<73 >>>> 19와 비교해서 19가 들어간다.
이를 반복하면 이 숫자들은 각 시간대별로 최대승하차 인원을 나열한 값으로 mx리스트에 다음과 같은 숫자가 입력이 된다.
참고)
for idx, row in enumerate(temp[2:]):
for idx2, row2 in enumerate(row[4:52]):
하나의 예시를 보자
3) 선생님의 답
temp_list.append(temp[0][idx*2+4]
temp(데이터원본)의 0번째 인덱스 (승차하차시간이 나와있는 헤더정보)에서 승하차 시간정보를 append한다. (승하차 시간정보는 4, 6, 8.. 이렇게 인덱스 값을 가지고 있음)
temp_list.append(mxst[idx*2])
temp_list.append(mx[idx*2])
승차시간이 많은 역과 승차인원 수를 구한다. (짝수인덱스의 값)
temp_list.append(mxst[idx*2]+1)
temp_list.append(mx[idx*2]+1)
하차시간이 많은 역과 하차인원 수를 구한다. (홀수인덱스의 값)
지금까지 작성했다면 대략 다음과 같은 리스트가 만들어진다.
[시간4-5, 승차역, 승차인원, 하차역, 하차인원]
[시간5-6, 승차역, 승차인원, 하차역, 하차인원]
......
이를 다음과 같이 하나의 total_list로 append해야 리스트 안에 리스트를 만들 수 있다.
total_list.append(temp_list)
시간, 역이름, 승차인원, 역이름, 하차인원의 총 리스트를 만든다.
그런데 temp_list=[ ] 이렇게 temp_list를 비워주지 않으면 처음 데이터가 누적되어 계속 생산이 되기 때문에 이를 빼먹지 말아야 한다. 빼먹으면 다음과 같이 됨.
[ [시간4-5, 승차역, 승차인원, 하차역, 하차인원]
[시간4-5, 승차역, 승차인원, 하차역, 하차인원], [시간5-6, 승차역, 승차인원, 하차역, 하차인원]
[시간4-5, 승차역, 승차인원, 하차역, 하차인원], [시간5-6, 승차역, 승차인원, 하차역, 하차인원], [시간6-7, 승차역, 승차인원, 하차역, 하차인원]
..... ]
참고) +str(idx+2)는 해당 역의 인덱스 정보다.
mxst에는 가장마지막으로 업데이트한 역의 정보가 추가된다 (즉 최대승하차 역)
'살콤아내 자기계발 > 파이썬' 카테고리의 다른 글
파이썬 머신러닝 완벽가이드 1주차 정리 (넘파이 15pg~38pg) (0) | 2021.04.21 |
---|---|
점프투파이썬 3주차 실습_서로 유사한 모양(인구분포)의 그래프를 가진 동을 찾아라 (0) | 2021.04.20 |
점프투파이썬 3주차 정리 (0) | 2021.04.16 |
Kaggle_ 예측모델 및 분석 대회 플랫폼 (0) | 2021.04.16 |
점프투파이썬 2주차 실습_3 (t-money 3월 교통통계파일을 활용) (0) | 2021.04.15 |