In [2]:
# -*- coding: utf-8 -*-
import pandas as pd
import folium
trafficAccident=pd.read_csv("./도로교통공단_교통사고다발지역_20191010utf8.csv")
#trafficAccident=pd.read_csv("./경기도교통사고.csv")
#trafficAccident
map_osm = folium.Map(location=[37.4729081, 127.039306])
folium.Marker([37.4729081, 127.039306]).add_to(map_osm)
map_osm
Out[2]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [2]:
def make_marker(map_osm, x, y):
    for i in range(len(x)):
        folium.Marker([y[i], x[i]]).add_to(map_osm)
colorIndex=''
def make_Cmarker(map_osm, x, y, death):
    #print(type(death))
    for i in range(len(x)):
        if(death[i] >= 0 & death[i] < 1):
            colorIndex='yellow'
        if(death[i] >= 2):
            colorIndex='red'
        else:
            coloeIndex='black'
        folium.CircleMarker([y[i], x[i]], fill_color=colorIndex, fill_opacity=0.7 ).add_to(map_osm)

        
trafficAccident.head()
#print(type(trafficAccident))

make_Cmarker(map_osm,trafficAccident['경도'],trafficAccident['위도'],trafficAccident['사망자수'] )
map_osm
Out[2]:
Make this Notebook Trusted to load map: File -> Trust Notebook
In [3]:
trafficAccident.head(10)
Out[3]:
사고지역관리번호 사고년도 사고유형구분 위치코드 시도시군구명 사고지역위치명 발생건수 사상자수 사망자수 중상자수 경상자수 부상자수 위도 경도 사고다발지역폴리곤정보 데이터기준일자
0 2013060 2012 스쿨존어린이 11110001 서울특별시 종로구1 서울특별시 종로구 혜화동(혜화초교 부근) 2 2 0 1 1 0 37.588413 126.999607 {type:Polygon,coordinates:[[[127.002009,37.590... 2019-10-10
1 2013060 2012 스쿨존어린이 11290001 서울특별시 성북구1 서울특별시 성북구 종암동(숭례초교 부근) 2 2 0 0 1 1 37.595505 127.035733 {type:Polygon,coordinates:[[[127.0381354,37.59... 2019-10-10
2 2013060 2012 스쿨존어린이 11290002 서울특별시 성북구2 서울특별시 성북구 동소문동7가(정덕초교 부근) 2 2 0 2 0 0 37.597571 127.014564 {type:Polygon,coordinates:[[[127.0169658,37.59... 2019-10-10
3 2013060 2012 스쿨존어린이 11290003 서울특별시 성북구3 서울특별시 성북구 석관동(석관초교 부근) 3 3 0 2 1 0 37.610429 127.059596 {type:Polygon,coordinates:[[[127.0619982,37.61... 2019-10-10
4 2013060 2012 스쿨존어린이 11320001 서울특별시 도봉구1 서울특별시 도봉구 쌍문동(쌍문초교 부근) 2 2 0 0 2 0 37.648129 127.024430 {type:Polygon,coordinates:[[[127.0268336,37.65... 2019-10-10
5 2013060 2012 스쿨존어린이 11350001 서울특별시 노원구1 서울특별시 노원구 상계동(동일초교 부근) 2 2 1 1 0 0 37.664437 127.056828 {type:Polygon,coordinates:[[[127.0592324,37.66... 2019-10-10
6 2013060 2012 스쿨존어린이 11530001 서울특별시 구로구1 서울특별시 구로구 개봉동(개봉초교 부근) 2 3 0 1 0 2 37.489940 126.856930 {type:Polygon,coordinates:[[[126.8593288,37.49... 2019-10-10
7 2013060 2012 스쿨존어린이 11530002 서울특별시 구로구2 서울특별시 구로구 개봉동(매봉초교 부근) 2 2 0 1 1 0 37.503921 126.845831 {type:Polygon,coordinates:[[[126.8482298,37.50... 2019-10-10
8 2013060 2012 스쿨존어린이 11710001 서울특별시 송파구1 서울특별시 송파구 방이동(방산초교 부근) 2 2 0 0 2 0 37.509797 127.122101 {type:Polygon,coordinates:[[[127.1245004,37.51... 2019-10-10
9 2013060 2012 스쿨존어린이 26290001 부산광역시 남구1 부산광역시 남구 용호동(용호초교 부근) 2 2 0 1 1 0 35.122549 129.109660 {type:Polygon,coordinates:[[[129.1119875,35.12... 2019-10-10
In [11]:
#print(type(trafficAccident['사망자수']))
#print(trafficAccident['사망자수'].shape)
# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname="/usr/share/fonts/truetype/nanum/NanumGothic.ttf").get_name()
rc('font', family=font_name)
%matplotlib inline
import pandas as pd
import numpy as np
deathRateDF=pd.DataFrame(trafficAccident['사고유형구분'])
deathRateDF.loc[:,'사망자수']=trafficAccident['사망자수']
deathRateDF.loc[:,'발생건수']=trafficAccident['발생건수']
#deathRate=trafficAccident['사망자수'].divide(trafficAccident['발생건수'])
#deathRateDF.loc[:,'사망율']=deathRate
deathRateGrouped = deathRateDF.groupby('사고유형구분')
label=['무단횡단', '보행노인', '보행어린이', '스쿨존어린이', '자전거']
#index=np.arange(len(label))
print(deathRateGrouped.sum()['사망자수']/deathRateGrouped.sum()['발생건수'])
plt.title("발생건수 대 사망자수")
plt.bar(label,deathRateGrouped.sum()['발생건수'])
plt.bar(label,deathRateGrouped.sum()['사망자수'])
plt.legend(deathRateGrouped.sum())
plt.show()
사고유형구분
무단횡단      0.071016
보행노인      0.079501
보행어린이     0.007818
스쿨존어린이    0.060932
자전거       0.013901
dtype: float64
In [5]:
plt.title("사망률")
plt.scatter(label,deathRateGrouped.sum()['사망자수']/deathRateGrouped.sum()['발생건수'])
plt.show()
In [12]:
#보행노인 사고 발생 위치
def make_CategoryMarker(map_osm, x, y, typeAccident, CmpString, colorIndex):
    for i in range(len(x)):
        if(typeAccident[i]==CmpString):
            folium.CircleMarker([y[i], x[i]], fill_color=colorIndex, fill_opacity=0.7 ).add_to(map_osm)

map_osm2 = folium.Map(location=[37.4729081, 127.039306])

make_CategoryMarker(map_osm2,trafficAccident['경도'],trafficAccident['위도'],trafficAccident['사고유형구분'], '보행노인','yellow')
make_CategoryMarker(map_osm2,trafficAccident['경도'],trafficAccident['위도'],trafficAccident['사고유형구분'], '무단횡단', 'blue')
map_osm2
Out[12]:
Make this Notebook Trusted to load map: File -> Trust Notebook