# 추가. 행정동명으로 위치 정보를 찾지 못하면 7자리 행정동코드로 찾기
for i in range(len(top10_lat)):
# 위도나 경도가 0인 요소가 있다면
if top10_lat[i] == 0 or top10_long[i] == 0:
# code_data에서 7자리 행정동코드를 구해 dong7에 저장하기
for row in code_data:
if top10_code8[i] == row[1]:
dong7 = row[0]
# location_data에서 7자리 행정동코드가 dong7인 행을 찾아 위도와 경도를 구하기
for row in location_data:
if dong7 == row[2]:
top10_lat[i], top10_long[i] = row[-1], row[-2]
print(top10_lat)
print(top10_long)
실행결과
[37.4999211, 37.5286662, 37.5550337, 37.5777701, 37.4856591, 37.5659638, 37.64193, 37.4756389, 37.4984733, 37.4955294]
[127.0367584, 126.9290731, 126.9228533, 126.9892737, 127.0097616, 126.9384315, 126.9387277, 126.8850721, 127.0449272, 127.0662436]
top10_lat[1]과 top10_long[1]에 정상적인 값이 저장됐습니다. 데이터 파일이 서로 잘 맞으면 작성하지 않아도 될 코드입니다. 사실 데이터 분석을 진행하다 보면 데이터 자체에 문제가 있는 경우가 상당히 많습니다.
TIP 행정동명이 일치하지 않으면 위도와 경도 모두 값이 제대로 저장되지 않습니다. 그래서 if top10_lat[i] == 0 or top10_long[i] == 0 대신 if top10_lat[i] == 0 또는 if top10_long[i] == 0으로 작성해도 이 프로그램에서는 같은 결과가 나옵니다.