유동인구데이터 분석 및 line그래프/지도로 나타내기
서울특별시 유동인구데이터에서 각 구별 유동인구수 분석하여,
그 중 유동인구수가 가장 높은 구의 날짜별 유동인구수를 추출하여 선 그래프로 그리고,
마지막으로 지도에도 나타내 보기
1. 데이터파일 가져와서 내용 체크
import pandas as pd
population = pd.read_csv('./data/population07.csv')
population.tail(5)
2. 구별 유동인구수 추출 및 그래프로 나타내기
sum_of_population_by_gu = population.groupby('군구')['유동인구수'].sum().sort_values(ascending=True)
sum_of_population_by_gu
import matplotlib.pyplot as plt
plt.rcParams['font.family']="Malgun Gothic"
plt.figure(figsize = (10,5))
plt.bar(sum_of_population_by_gu.index,sum_of_population_by_gu)
plt.xticks(rotation = 45)
plt.title('구에 따른 유동인구수')
plt.show()
3. 강남구의 날짜별 유동인구수 추출
population_gangnam = population[population['군구'] == '강남구'] #강남구만 추출
population_gangnam_daily = population_gangnam.groupby('일자')['유동인구수'].sum()
population_gangnam_daily
4. 선 그래프 그리기
plt.figure(figsize = (10,5))
date = []
for day in population_gangnam_daily.index:
date.append(str(day)) #string으로 안바꿔주면 날짜가 제대로 안나옴
plt.plot(date,population_gangnam_daily)
plt.title('2020년 7월 서울 강남구 날짜별 유동인구 수')
plt.xlabel('날짜')
plt.ylabel('유동인구 수(천만명)')
plt.xticks(rotation=90)
plt.show()
5. 지도에 표시하기
map = folium.Map(location = [37.5502, 126.982], zoom_start=11, tiles = 'stamentoner')
map
seoul_state_geo = './data/seoul_geo.json'
geo_data = json.load(open(seoul_state_geo, encoding = 'utf-8'))
folium.Choropleth(geo_data=geo_data,
data = sum_of_population_by_gu,
columns = [sum_of_population_by_gu.index,sum_of_population_by_gu],
fill_color = 'PuRd',
key_on = 'properties.name').add_to(map)
map
지도 그리는 코드 연습 또 연습!!! #sparta