본문 바로가기

DATA STUDY/모두의 데이터분석 with 파이썬

셋째 마당 - 우리 동네 인구 구조 시각화하기 UNIT 07

<오늘의 순서>

 

1. 인구 데이터 파일을 읽어온다.

2. 전체 데이터에서 한 줄씩 반복해서 읽어온다.

3. 우리 동네에 대한 데이터인지 확인한다.

4. 우리 동네일 경우 0세부터 100세 이상까지의 인구수를 순서대로 저장한다.

5. 저장된 연령별 인구수 데이터를 시각화한다. 

1. 인구 데이터 파일을 읽어온다.

 

import csv
f = open('age.csv')
data = csv.reader(f)

2. 전체 데이터에서 한 줄씩 반복해서 읽어온다.

 

for row in data:
	print(row)

 

여기에서 특정 동네에 대한 데이터를 보고싶으면 어떻게 해야할까요?

 

if '서울특별시 구로구 신도림동(1153051000)' == row[0]:
	print(row)

 

이런식으로 조건을 달아서 해당 데이터만 확인하면 됩니다.

 

같은 내용을 다르게 표현하면

 

if '신도림' in row[0]:
    print(row)

 

print('신도림' in '서울특별시 구로구 신도림동(1153051000)')

 

A in B는 A가 B 안에 존재하면 참, 존재하지 않으면 거짓이 됩니다. 

 

특정값, 여기서는 0 ~ 100세 인구수만 가져오고 싶으면 아래 코드를 추가해야합니다.

 

for row in data:
    if '신도림' in row[0]:
       for i in row[3:]:
        	print(i)

 

신도림 관련 데이터를 다 뽑아내고 다시 그 데이터 안에서 3번 인덱스부터 뽑아내게 됩니다.

 

마지막으로 해당 데이터를 담을 리스트를 선언하고 append()를 이용해 빈 리스트에 데이터를 추가합니다.

 

import csv
f = open('age.csv')
data = csv.reader(f)
result = []
for row in data:
    if '신도림' in row[0]:
        for i in row[3:]:
            result.append(i)
print(result)            

 

아직 print를 for문 안에 해야할지 밖으로 해야할지는 잘 모르겠습니다. 한번씩 써보면서 배워가는 중입니다.

+

 

책에서 한글이 깨져 보일때 해결하는 방법에 대해 알려주고 있는데 저번에 프로젝트하다 비슷한 경험이 있어 남겨둡니다.

 

해결 방법은 해당 csv 파일을 메모장을 통해 엽니다.

 

그리고 다른 이름으로 저장을 클릭한 후 파일의 인코딩을 UTF-8로 변경한뒤 파일 형식을 모든 파일로 저장합니다.

 

해결!!(됐기를 기원합니다...)