코드 작성하기
작성한 알고리즘을 코드로 구현해 봅시다. 먼저 과정 1과 2를 코드로 옮겨 봅시다. 알고리즘을 참고해서 먼저 작성해 본 후 이 책의 코드를 보세요.
사용하는 데이터 파일이 3개이므로 CSV 파일을 여는 변수와 데이터를 저장하는 변수들이 겹치지 않게 정합니다. 인구 데이터는 data, 행정동코드 데이터는 code_data, 위치 데이터는 location_data에 리스트로 저장합니다. 11장의 파일 읽기 코드에 위치 데이터를 읽어 들이는 코드를 추가하면 됩니다.
# 1. 필요한 데이터 파일 모두 읽어 들이기
import csv
# 코랩의 파일 업로드
# from google.colab import files
# uploaded = files.upload()
# 인구 데이터 읽어와서 리스트로 저장하기
f1 = open('LOCAL_PEOPLE_DONG_201912.csv', encoding='utf8')
data = csv.reader(f1)
next(data)
data = list(data)
# 행정동코드 데이터 읽어와서 리스트로 저장하기
f2 = open('dong_code.csv', encoding='utf8') # 또는 'cp949'
code_data = csv.reader(f2)
next(code_data)
next(code_data)
code_data = list(code_data)
# 위치 정보 데이터 읽어와서 리스트로 저장하기
f3 = open('dong_location.csv')
location_data = csv.reader(f3)
next(location_data)
location_data = list(location_data)
# 인구 데이터의 데이터 타입 변환하기
for row in data:
for i in range(1, 32):
if i <= 2:
row[i] = int(row[i])
else:
row[i] = float(row[i])
# 행정동코드 데이터의 데이터 타입 변환하기
for row in code_data:
row[0], row[1] = int(row[0]), int(row[1]) # 7자리 행정동코드, 8자리 행정동코드
# 위치 정보 데이터의 데이터 타입 변환하기
for row in location_data: # row[2]: 행정동코드, row[-2]: 경도, row[-1]: 위도
row[2], row[-2], row[-1] = int(row[2]), float(row[-2]), float(row[-1])