살콤아내 자기계발/파이썬

점프투파이썬 2주차 실습_1 (인구수가 가장 많은 동과 인구값을 찾으시오)

살콤아내 2021. 4. 12. 12:22
728x90
반응형

age_population.py
0.00MB
age_population_month.csv
6.13MB

 

실습문제 1: age_population_month.csv파일을 variable explorer로 데이터를 볼 수 있게 for문을 사용하시오

 

 

 

 

 

실습문제 2: 청담동의 데이터를 추출하시오.

>>결과값

 

 

실습문제 3: 동단위에서 가장 인구가 많은 동의 데이터를 추출하시오.

 

1) 숫자 안에 쉼표,가 있으면 숫자를 비교할 때 오류가 나온다.

>> a.replace(',', '')를 활용해서 청담동의 인구수를 int값으로 출력한다.

>>결과값: 26738

 

실습문제 4: 가장 인구수가 많은 동과 그 인구수를 찾으시오 (String을 활용하기)

30분씩이나 짠 오답

max_temp=0
for idx, row in enumerate(temp[1:]):
   if '동' or '읍' or '면' in temp1[0][-13]:  >>경기도  (4100000000) 13465837 라고 출력됨
        if max_temp<int(row[1].replace(',','')):
           max_temp=int(row[1].replace(',',''))
           max_flag=idx
print(temp[max_flag+1][0], max_temp)

 

>>오류의 원인: 동, 읍, 면 다음에 띄어쓰기가 리스트인덱스마다 각기 다름 (어떤건 공백이 있고 어떤건 공백이 없음)

 

선생님의 정답

1. 군/구 단위에는 끝 숫자0 이 6자리이다. 뒤에서부터 넘버링키워드를 6자리 슬라이싱한다.

2. max_flag+1 은 헤더정보를 스킵하는 역할을 한다.

3. 정답: 경기도 부천시 신중동(4119074200) 130806

max_temp=0
for idx, row in enumerate(temp[1:]):
    if row[0][-7:-1].count('0')<5:     
        if max_temp<int(row[1].replace(',','')):
           max_temp=int(row[1].replace(',',''))
           max_flag=idx
print(temp[max_flag+1][0], max_temp)

 

 

 

 

실습문제3: plot을 활용해서 경기도 부천시 신중동의 0-100세에 해당하는 인구그래프를 그려보아라

 

간단한 예시는 다음과 같다. matplotlib 모듈을 plt라고 부르고 A를 그래프로 그려보자.

import matplotlib.pyplot as plt

A=[1,5,8,8,4,3,2]

plt.plot(A)

 

 

과정: 인덱스슬라이싱>>스트링을 인덱스화

 

import matplotlib.pyplot as plt

sinjoongdong = temp[max_flag+1][3:104]

sinjoongdong_int_list = []

 

for row in sinjoongdong:

sinjoongdong_int_list.append(int(row.replace(',','')))

 

plt.plot(sinjoongdong_int_list)

 

 

728x90
반응형