코드는 길지만, 모두 배운 내용이기 때문에 이해하기 어려운 부분은 없을 겁니다. 11장에서는 행정동코드 파일(dong_code.csv)에서 8자리 행정동코드만 변환했지만, 여기에서는 7자리 행정동코드도 데이터 타입을 변환합니다. 그 이유는 뒤에서 확인합니다. 위치 데이터에서도 필요한 항목인 행정동코드, 경도, 위도를 숫자로 변경했습니다. 다음 과정으로 넘어가 봅시다.
졔졔쌤의 조언
dong_location.csv 파일을 읽어 들일 때도 인코딩 옵션에 유의해 주세요. Windows라도 PC 세부 사양에 따라 인코딩 옵션을 지정하지 않거나 utf8, euc-kr, cp949 등을 지정해야 하는 경우도 있습니다. 오류가 발생하더라도 당황하지 말고 다른 옵션을 넣어서 실행해 보세요.
과정 2에서는 행정동별 인구수를 저장하는 dong_population 딕셔너리를 만듭니다. 그리고 인구 데이터를 담은 data를 돌며 행정동코드(열 인덱스 [2])를 키로, 총생활인구수(열 인덱스 [3])를 값으로 해서 한 쌍씩 dong_population에 저장합니다(data의 항목은 11장을 참고하거나 직접 파일을 열어서 확인해 보세요).
# 2. 행정동별 인구수를 저장하는 빈 딕셔너리를 만들고
# 행정동별 총생활인구수를 딕셔너리에 저장하기
dong_population = {}
for row in data:
dong_code, p = row[2], row[3]
if dong_code not in dong_population.keys():
dong_population[dong_code] = p
else:
dong_population[dong_code] += p
# print(dong_population)
실행결과
{11215710: 32699578.380499963, 11680545: 36303123.67050001, 11680610: 39427473.14730003... }