-
전국 시도별 신재생 에너지(태양광, 풍력, 수력) 데이터 분석 with PythonData Analysis/Environment 2021. 3. 14. 20:34
Data Source
국가통계포털에서 제공하는 시도별 신재생 에너지원별 생산량 데이터를 가져와서 데이터 분석을 해보도록 하겠다. 데이터 소스는 다음 링크에서 다운이 가능하다.
import pandas as pd df=pd.read_csv('C:/Users/banad/Downloads/에너지.csv',encoding='euc-kr') df=df[['code','시도','Time','태양광','풍력','수력']] df=df.melt(id_vars=['code','시도','Time'],var_name ="신재생 에너지",value_name='에너지') df=df[df['시도']!='전국'] df['에너지']=df['에너지'].replace('-',0) df['에너지']=df['에너지'].astype(int) df=df[['시도','Time','신재생 에너지','에너지']]
시도/연도별 신재생 에너지 생산량 현황
- 태양광 에너지 생산량 현황
import seaborn as sns import matplotlib.pyplot as plt from matplotlib.ticker import FuncFormatter %matplotlib inline %config InlineBackend.figure_format='retina' plt.rcParams["font.family"] = 'Malgun Gothic' plt.figure(figsize=(18,9)) plt.rcParams["font.size"] = 12 ax=sns.heatmap(sun_df,cmap="Blues",annot=True,fmt=".0f",) ax.set_title('태양광 에너지 생산량')
- 풍력 에너지 생산량 현황
wind_df=df[df['신재생 에너지']=='풍력'] wind_df=wind_df.pivot(index='시도',columns='Time',values='에너지') %matplotlib inline %config InlineBackend.figure_format='retina' plt.rcParams["font.family"] = 'Malgun Gothic' plt.figure(figsize=(18,9)) plt.rcParams["font.size"] = 12 ax=sns.heatmap(wind_df,cmap="Blues",annot=True,fmt=".0f") ax.set_title('풍력 에너지 생산량',)
- 수력 에너지 생산량 현황
water_df=df[df['신재생 에너지']=='수력'] water_df=water_df.pivot(index='시도',columns='Time',values='에너지') %matplotlib inline %config InlineBackend.figure_format='retina' plt.rcParams["font.family"] = 'Malgun Gothic' plt.figure(figsize=(18,9)) plt.rcParams["font.size"] = 12 ax=sns.heatmap(water_df,cmap="Blues",annot=True,fmt=".0f") ax.set_title('수력 에너지 생산량',)
- 신재생 에너지 총 생산량 현황
total=pd.DataFrame(df.groupby(['시도','Time']).sum()['에너지']).reset_index() si_do={'강원도':'Gangwon-do','경기도':'Gyeonggi-do', '경상남도':'Gyeongsangnam-do','경상북도':'Gyeongsangbuk-do', '광주광역시':'Gwangju','대구광역시':'Daegu','대전광역시':'Daejeon','부산광역시':'Busan', '서울특별시':'Seoul','세종특별자치시':'Sejongsi','울산광역시':'Ulsan','인천광역시':'Incheon', '전라남도':'Jeollanam-do','전라북도':'Jeollabuk-do','제주특별자치도':'Jeju-do','충청남도':'Chungcheongnam-do', '충청북도':'Chungcheongbuk-do'} total['eng_region']=total['시도'].apply(lambda x: si_do[x] ) total.columns=['region','Year','Energy','eng'] import plotly.express as px fig = px.line(total, x="Year", y="Energy", color="eng", line_group="eng", hover_name="eng") fig.update_layout( xaxis = dict( tickmode = 'array', tickvals = [2015, 2016, 2017, 2018, 2019], # ticktext = ['One', 'Three', 'Five', 'Seven', 'Nine', 'Eleven'] ) ) fig.show() ff=fig.to_json() for x,y in zip(list(si_do.keys()), list(si_do.values())): ff = ff.replace(y, x)
2015~2019 시도별 신재생 에너지 총 생산량 지도 시각화
확실히 강원도, 전라도 지역에서 태양광, 풍력, 수력 에너지가 가장 많이 생산된 점을 확인할 수 있다.
from urllib.request import urlopen import json with urlopen('https://raw.githubusercontent.com/southkorea/southkorea-maps/master/kostat/2018/json/skorea-provinces-2018-geo.json') as response: kor = json.load(response) avg=pd.DataFrame(df.groupby(['시도']).sum()['에너지']).reset_index() for idx, si in enumerate(kor['features']): name=si['properties']['name'] nvm=avg.loc[(avg['시도']==name),'에너지'].iloc[0] kor['features'][idx]['properties']['신재생 에너지 생산량']=int(nvm) kor['features'][idx]['properties']['base_year']='2015~2019 합계' import mapboxgl from mapboxgl.viz import * import os from mapboxgl.utils import create_color_stops from mapboxgl.utils import create_numeric_stops api='~~' center =[126.986, 37.565] color_breaks = [1000000,2000000,3000000,4000000,5000000,6000000,7000000,8000000,9000000] color_stops =create_color_stops(color_breaks,colors='YlGnBu') viz =ChoroplethViz( access_token=api, data=kor, color_property='신재생 에너지 생산량', color_stops=color_stops, center=center, zoom=5.7, bearing=-11, pitch=43, height_property='신재생 에너지 생산량', height_stops=create_numeric_stops(color_breaks,0,10), height_function_type='interpolate' ) viz.show() viz.create_html('신재생 에너지 생산량.html')
'Data Analysis > Environment' 카테고리의 다른 글
2015년 ~ 2020년 국내 태양광 에너지 생산량 분석 With 파이썬 (0) 2021.06.06 한국지형/포유류 분포도 3d 웹맵 Qgis &Qgisthreejs.js (0) 2021.03.17 전국 도시 공원 데이터 지도로 시각화 With Python, Mapbox (0) 2021.03.13 한국지형/곤충 분포도 3d 웹맵 Qgis &Qgisthreejs.js (0) 2021.03.10 지난 10년간 대한민국 시도별 온도/강수량 데이터 분석 & 시각화 With Python (0) 2021.03.09