본문 바로가기
Data Analysis/Data Analysis

모두의 데이터분석 with 파이썬 : 3. 인구 공공데이터

by SeleniumBindingProtein 2022. 4. 3.
728x90
반응형
#!/usr/bin/env python
# coding: utf-8

#7.우리 동네 인구 구조 시각화하기

# In[15]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)

for row in data:
    print(row)


# In[16]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)

for row in data:
    if '서울특별시 구로구 신도림동' == row[1]:
        print(row)


# In[17]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)

for row in data:
    if '신도림' in row[1]:
        print(row)


# In[19]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)

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


# In[20]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)

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


# In[31]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)
result = []

for row in data:
    if '신도림' in row[1]: # 신도림이 포함된 행정구역 찾기
        for i in row[4:]: #0세부터 끝까지 모든 연령에 대해 반복
            result.append(i) #해당 연령의 인구수 리스트에 순서대로 저장
print(result) #0세부터 100세 이상까지의 인구수 출력


# In[42]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)
result = []

for row in data:
    if '신도림' in row[1]: # 신도림이 포함된 행정구역 찾기
        for i in row[4:]: #0세부터 끝까지 모든 연령에 대해 반복
            result.append(int(i)) #해당 연령의 인구수 리스트에 순서대로 저장
print(result) #0세부터 100세 이상까지의 인구수 출력


# In[41]:


import matplotlib.pyplot as plt
import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)
result = []

for row in data:
    if '신도림' in row[1]: # 신도림이 포함된 행정구역 찾기
        for i in row[4:]: #0세부터 끝까지 모든 연령에 대해 반복
            result.append(i) #해당 연령의 인구수 리스트에 순서대로 저장
plt.style.use('ggplot') #격자무늬스타일 지정
plt.plot(result)
plt.show()


# In[40]:


import matplotlib.pyplot as plt
import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)
result = []
name = input('인구 구조가 알고 싶은 지역의 이름(읍면동 단위)을 입력해주세요 : ')

for row in data:
    if '아름동' in row[1]: # 신도림이 포함된 행정구역 찾기
        for i in row[4:]: #0세부터 끝까지 모든 연령에 대해 반복
            result.append(int(i)) #해당 연령의 인구수 리스트에 순서대로 저장

plt.style.use('ggplot') #격자무늬스타일 지정
plt.rc('font', family='AppleGothic')
plt.title(name + '지역의 인구 구조')
plt.plot(result)
plt.show()

#!/usr/bin/env python
# coding: utf-8

#8.인구 구조를 다양한 형태로 시각화하기

# In[2]:


import matplotlib.pyplot as plt
plt.bar([0,1,2,4,6,10], [1,2,3,4,5,6])
plt.show()


# In[3]:


import matplotlib.pyplot as plt
plt.bar(range(6), [1,2,3,4,5,6])
plt.show()


# In[31]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)

result=[]
for row in data:
        if '신도림' in row[1] :
            for i in row[3:]:
                result.append(int(i))
                
import matplotlib.pyplot as plt 
plt.bar(range(101), result)
plt.show()


# In[36]:


import csv
f = open('age.csv', 'r', encoding='utf8')
data = csv.reader(f)

result=[]
for row in data:
        if '신도림' in row[1] :
            for i in row[3:]:
                result.append(int(i))
                
import matplotlib.pyplot as plt 
plt.barh(range(101), result)
plt.show()


# In[70]:


import csv
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
m = []
f = []
for row in data:
    if '신도림' in row[1] :
        for i in range(0,101) :
            m.append(int(row[i+4]))
            f.append(int(row[-(i+1)]))
f.reverse()


# In[68]:


import csv
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
m = []
f = []
for row in data:
    if '신도림' in row[1] :
        for i in row[4: 105] :
            m.append(int(i))
        for i in row[107:]:
            f.append(int(i))
import matplotlib.pyplot as plt
plt.barh(range(101), m)
plt.barh(range(101), f)
plt.show()


# In[85]:


import csv
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
m = []
f = []
name=input('찾고 싶은 지역의 이름을 알려주세요 : ')
for row in data:
    if name in row[1] :
        for i in row[4: 105] :
            m.append(int(i))
        for i in row[107:]:
            f.append(int(i))
        break
import matplotlib.pyplot as plt
plt.rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus']=False
plt.title(name+' 지역의 남녀 성별 인구 분포')
plt.barh(range(101), m, label='남성')
plt.barh(range(101), f, label='여성')
plt.legend()
plt.show()

#!/usr/bin/env python
# coding: utf-8

#9.우리 동네 인구 구조를 파이 차트로 나타내기

# In[4]:


import csv
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
m = []
f = []
name=input('찾고 싶은 지역의 이름을 알려주세요 : ')
for row in data:
    if name in row[1] :
        for i in row[4: 105] :
            m.append(-int(i))
        for i in row[107:]:
            f.append(int(i))
        break
import matplotlib.pyplot as plt
plt.rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus']=False
plt.title(name+' 지역의 남녀 성별 인구 분포')
plt.barh(range(101), m, label='남성')
plt.barh(range(101), f, label='여성')
plt.legend()
plt.show()


# In[6]:


import matplotlib.pyplot as plt
plt.pie([10,20])
plt.show()


# In[7]:


import matplotlib.pyplot as plt
size = [2232,3323,1111,4123]
plt.axis('equal')
plt.pie(size)
plt.show()


# In[8]:


import matplotlib.pyplot as plt
plt.rc('font', family='AppleGothic')
size = [2232,3323,1111,4123]
label = ['A', 'B', 'AB', 'O']
plt.axis('equal')
plt.pie(size, labels=label)
plt.show()


# In[10]:


import matplotlib.pyplot as plt
plt.rc('font', family='AppleGothic')
size = [2232,3323,1111,4123]
label = ['A', 'B', 'AB', 'O']
plt.axis('equal')
plt.pie(size, labels=label, autopct='%.1f%%')
plt.legend()
plt.show()


# In[11]:


import matplotlib.pyplot as plt
plt.rc('font', family='AppleGothic')
size = [2232,3323,1111,4123]
label = ['A', 'B', 'AB', 'O']
color=['darkmagenta','deeppink', 'hotpink','pink']
plt.axis('equal')
plt.pie(size, labels=label, autopct='%.1f%%', explode=(0,0,0.1,0))
plt.legend()
plt.show()


# In[22]:


import csv
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
size=[]
name=input('찾고 싶은 지역의 이름을 알려주세요 : ')
for row in data:
    if name in row[1] :
        m=0
        f=0
        for i in range(101):
            m += int(row[i+4])
            f += int(row[i+107])
        break
size.append(m)
size.append(f)
import matplotlib.pyplot as plt
plt.rc('font', family='AppleGothic')
color=['darkmagenta','deeppink']
plt.axis('equal')
plt.pie(size, labels=['남','여'], autopct='%.1f%%', colors=color, startangle=90)
plt.title(name+'지역의 남녀 성별 비율')
plt.show()

#!/usr/bin/env python
# coding: utf-8

#10.우리 동네 인구 구조를 산점도로 나타내기

# In[3]:


import csv
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
m = []
f = []
name=input('궁금한 동네를 입력해봐요 : ')
for row in data:
    if name in row[1] :
        for i in range(4,105) :
            m.append(int(row[i]))
            f.append(int(row[i+103]))
        break
import matplotlib.pyplot as plt
plt.plot(m, label='M')
plt.plot(f, label='F')
plt.legend()
plt.show()


# In[5]:


import csv
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
result=[]
name=input('궁금한 동네를 입력해봐요 : ')
for row in data:
    if name in row[1] :
        for i in range(4,105) :
            result.append(int(row[i])-int(row[i+103]))
        break
import matplotlib.pyplot as plt
plt.bar(range(101), result)
plt.show()


# In[13]:


import csv
import math
f = open('gender.csv', 'r', encoding='utf8')
data = csv.reader(f)
m = []
f = []
size = []
name=input('궁금한 동네를 입력해봐요 : ')
for row in data:
    if name in row[1] :
        for i in range(4,105) :
            m.append(int(row[i]))
            f.append(int(row[i+103]))
            size.append(math.sqrt(int(row[i])+int(row[i+103]))) #sqrt
        break
import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.rc('font', family='AppleGothic')
plt.figure(figsize=(10,5), dpi=300)
plt.title(name+' 지역의 성별 인구 그래프')
plt.scatter(m,f, s=size, c=range(101), alpha=0.5, cmap='jet')#컬러맵 적용
plt.colorbar()
plt.plot(range(max(m)),range(max(m)), 'g')#추세선 추가
plt.xlabel('남성 인구수')
plt.ylabel('여성 인구수')
plt.show()


# In[ ]:
728x90
반응형

댓글