더북(TheBook)

row[1]부터 row[31]까지 모두 바꿔야 하므로 반복문을 사용합니다. 변경해야 할 열이 총 31개이므로 데이터 타입을 31번 변환해야 합니다. 그런데 잘 살펴보면 여기서도 반복되는 부분이 보입니다. 인덱스가 1부터 31까지 1씩 증가하며 데이터 타입을 변환하고 있죠. 이 부분에 반복문을 사용할 수 있습니다. 그리고 인덱스가 2보다 작거나 같을 때는 정수형으로, 2보다 클 때는 실수형으로 변환하면 됩니다.

for row in data:
    for i in range(1, 32):
        if i <= 2:      # 인덱스가 2 이하인 경우 정수형으로 변환
            row[i] = int(row[i])
        else:           # 인덱스가 2 초과인 경우 실수형으로 변환
            row[i] = float(row[i])
print(data[0])
실행결과
['20191201', 0, 11215710, 45694.9988, 452.3937, 208.7971, 1267.7678, 5642.9235, 5433.6801, 2494.5993, 1691.4831, 1042.7096, 1058.3378, 895.4639, 875.9212, 601.9097, 496.2165, 850.682, 388.4005, 180.3721, 1586.7039, 6973.6176, 4259.7022, 2036.1446, 1285.42, 794.6241, 833.7179, 772.1417, 773.2152, 827.1455, 565.5378, 1405.3707, '']

첫 번째 열인 기준일ID를 제외하고 모든 데이터가 숫자형으로 변경됐습니다. 마지막의 ''는 존재하지 않는 열인데 파일을 읽어 들이는 과정에서 포함됐습니다. 연산에 활용할 데이터는 아니니 그대로 둬도 괜찮습니다. 인구 데이터를 분석하기 편하도록 데이터 타입을 변환하는 작업을 완료했습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.