Python [시각화]

[Week2] mapping(1) 지도위 밀집도 색깔로 표현

Yungyeom 2021. 5. 1. 15:49

A. import 및 파일 불러들이기. 

Fig1

1) 39개의 column이 있다.  list는 파일 안에 몇 개의 column 항목이 있는지 말해주며 여기에 len을 씌우면 갯수를 말해준다.

 

 

B. 어떤 column을 선택하여 볼것인가를 결정. '상가업소번호'는 가게의 고유 이름일 것이니 1개씩만 존재할 것이다. 또한 '상권업종소분류명'으로 상가의 카테고리를 나눌 수 있을 것이다. 

Fig3

 

1)  len(category_range)  입력하면 709, 즉 709종류의 '상권업종소분류명' 항목이 있는 것을 알 수 있다. 이 항목 안에 '후라이드/양념치킨' 항목이 있다. 이것은 나중에 다시 보기로 하고 우선 타켓 도시인 서울특별시에 대한 정보만 가져오자.

 

C. 39개의 list 중에 '도로명'이 있고, 도로명 column에는 ~시  ~구  ~상세주고  로 이루어져 있다. 우리는 우선 서울특별시만 보기로 하자. 

 

Fig4

 

1) 보다시피 '도로명' 리스트가  '시', '구', '상세주소' 로 나뉘어진 것을 볼 수 있다.  

->  commercial['도로명'].str.split('  ', n=2,  expand=True) 

->  space로 구분되는 '도로명'을 space를 기준으로 나누되 2번 자르겠다는 뜻이다. expand=True를 적음으로써 아예 서로 다른 column으로 구분지어졌다. 

-> 이제 이 전체 파일에서 '시'가 '서울특별시'인 것만 가져오면 된다. 

 

 

D. 시 == 서울특별시  

Fig5

1) 시==서울특별시인 것만 가져오다. 

Fig6

 2) 서울특별시인 것만 잘 가져왔는지 set 함수로 '시' column에 무엇이 있나 본다. '시'  column에 '서울특별시'만 존재하며 그 수가 1개인 것으로 나타난다. 

 

 

E. 상권업종소분류명 == 후라이드/양념치킨 

Fig7

 

1) 가지고 있는 파일에서 내가 원하는 column 중 내가 원하는 element만을 보고 싶을 때에 쓰는 명령어이기도 하다.

filename[filename['column'] == 'element'] 

seoul_chicken_data = seoul_data [ seoul_data [ '상권업종소분류명'] == '후라이드/양념치킨'] 
이시간 이후로 seoul_chicken_data 는 '서울특별시'에 있는 '후라이드/양념치킨' 정보이다. 

 

 

F. 서울특별시 00구 

Fig8

1) 우리가 '서울특별시' 에 있는 '후라이드/양념치킨'집만 추려놓은 데이터를 seoul_chicken_data로 정의했다.

이제 groupby 함수를 사용하여 '구'단위로 좁혀서 보자. 

2) groupdata = seoul_chicken_data.groupby('구')  로 정의한다.

3) group_by_category = groupdata['상권업종소분류명'] 즉 '00구'에 있는 상권업종소분류명-

 

 

G. 시각화 준비 - x,y 데이터 뽑기. 

Fig9

 

1) 각주처리된 라인들은 단지 1줄로 표현한 것을 여러줄로 나눈 것

2)  ~.groupby('~~')['*****'].count()    -> 이것은 한 set로 쓰이며 ~~에 해당하는 column안에 있는 내용들 중 ***** 애들을 뽑아 count 한다. 이 때 sort_values를 사용하여 증가하는 순서대로 정렬할 수도 있다. 

 

 

H. 시각화

Fig10 

1) 폰트설정 :  plt.rcParams['font.family'] = "Malgun Gothic"   

2)  

 

 

I. 지도위에 그리기

Fig11

1)  foium & json 필요   

 

 

J.  위도 정보를 사용하여 지도 그리기

 

K. 지도 위에 색깔 입혀서 density 표현하기