멋쟁이사자처럼 X K-DIGITAL Training - 06.21
[github] likelion-kdigital/semi-project-1 https://github.com/ijo0r98/likelion-kdigital/tree/main/semi-project-1
1) 사고 발생건수 시각화 그래프 유형 stacked
df_bic_acc_plt.plot(kind="bar", stacked=True, figsize=(20, 15), fontsize=15, colormap='bwr')
2) 인구 수 대비 교통사고 발생 수 지도 시각화
이전에는 [인구 수 대비 자전거 도로 수 데이터]로 인구 팝업과 색상이 표시된 지도 시각화를 하였으나 인구 수에 비례하여 교통사고 발생 수를 보여주는 것이 더 중요하다고 생각되어 이전의 지도 시각화는 삭제하고 새로 추가
구별 중심좌표 데이터
gu_geo = pd.read_excel('data/구별위도경도.xlsx', encoding='UTF-8')
gu_geo.head()
지도 시각화
import folium
from folium.features import DivIcon
lat = ""
lng = ""
for i in range(25):
#tmpMap = gmaps.geocode(name)
#tmpLoc = tmpMap[0].get('geometry')
name = gu_geo['구별'][i]
lat = gu_geo['lat'][i]
lng = gu_geo['lng'][i]
text = name
# 구별 텍스트 마커추가
folium.map.Marker(
[lat, lng],
icon=DivIcon(
icon_size=(100,50),
icon_anchor=(15,0),
html='<div style="font-size: 10pt">%s</div>' %text,
)
).add_to(map_acc)
# 인구수 팝업
folium.Marker([lat, lng],
popup='인구수: '+str(popul_df['인구수'][i])+'명',
icon=folium.Icon(color='red', icon='glyphicon-user')
).add_to(map_acc)
map_acc
인구 수 대비 여전히 영등포구와 송파구의 사고 발생비율이 가장 높음을 알 수있음
3) 자전거 도로 종류별 수 그래프 추가
구 별 전체 자전거 도로 수와 각각의 도로 종류별로 얼마나 차지하는지 보여주기에 효율적이라 생각되어 추가
road_list = ['자전거전용도로 구간', '자전거보행자겸용도로 구간', '자전거전용차로 구간', '자전거우선도로 구간']
df_bic_road_csv[road_list].plot(kind="bar", stacked=True, figsize=(20, 15), fontsize=15, colormap='Set3').legend(fontsize = 20)
4) 서울시내 전체 자전거도로 중 각각의 자전거 도로 종류가 차지하는 비율 그래프 추가
도로별 수 합계 행 추가
df_bic_road_csv.loc['합계'] = (df_bic_road_csv.sum(axis=0).values)
df_bic_road_csv.loc['합계', road_list].plot(kind='pie', figsize=(15, 10), fontsize=13, colormap='Set3', autopct='%.1f%%')
5) 자전거 사고 발생에 영향을 미치는 요인(인구 수, 대여 건수, 자전거도로 수)과 사고 발생 수 data scaling
데이터 전처리
def reRange(x, oldMin, oldMax, newMin, newMax):
return (x - oldMin) * (newMax - newMin) / (oldMax - oldMin) + newMin
# 필요한 열 선택
df_heatmap = df_road_corr[['도로 수', '인구 수', '대여 건수', '사고 수']]
# 점수 열 추가
for col in df_heatmap.columns:
new_col = col + ' 점수'
df_heatmap[new_col] = reRange(df_heatmap[col], min(df_heatmap[col]), max(df_heatmap[col]), 1, 100)
히트맵
df_heatmap.sort_values(by='사고 수 점수', ascending=False, inplace=True)
sns.heatmap(df_heatmap[['도로 수 점수', '인구 수 점수', '대여 건수 점수', '사고 수 점수']], cmap='PuRd', fmt='f', annot=True)
plt.title('각 요인별 점수 및 사고 발생 수 시각화')
[이전의 원인 예측]
1. 자전거 사고 발생수가 가장 높은 송파구와 영등포구의 자전거 대여 건수와 자전거 도로 수가 높은 편으로 나타남
→ 자전거 사고 발생 수는 자전거 도로 수, 자전거 이용률과 상관관계가 있을 것이다.
2. 송파구와 영등포구의 경우 자전거 우선도로와 자전거 전용차로의 비율이 가장 높음
→ 자전거 사고 발생에 대해 자전거 우선도로와 자전거 전용차로의 연관이 가장 높을 것이다.
→ 자전거 이용률과 도로가 많은 것에 비해 자전거 전용도로의 비율이 적어 안전한 자전거 도로상황이 아니기 때문일 것이다.
[검증 및 수정]
1. 검정 결과 인구 수, 자전거 도로 수, 공공자전거 대여 건수 모두 자전거 교통사고 발생 수와 통계적으로 유의미한 상관관계가 있다.
그 중 인구 수의 상관계수가 가장 낮고(0.58) 자전거 도로 수가 가장 높다.(0.75)
2. 자전거보행자겸용도로와 자전거전용도로와의 연관이 가장 높다.
자전거 전용차로와 우선도로의 경우 p-value가 0.05 초과로 귀무가설에 의해 유의미한 상관관계가 없을 확률이 높다.
그에 반해 자전거보행자겸용도로와 자전거전용도로는 p-value 0.05 미만으로 유의미한 상관관계가 있을 확률이 높다.
따라서 자전거 보행자겸용도로와 자전거전용도로가 자전거 교통사고에 미치는 영향이 더 크다고 볼 수 있다.
[K-DIGITAL] 파이썬 웹 크롤링 - 뉴스 기사 스크랩(2) (0) | 2021.06.23 |
---|---|
[K-DIGITAL] 파이썬 웹 크롤링 - 뉴스 기사 스크랩 (0) | 2021.06.23 |
[K-DIGITAL] 세미프로젝트1. 서울시 자전거사고 분석(3) 상관관계 (0) | 2021.06.22 |
[K-DIGITAL] 파이썬을 활용한 기초 통계분석(2) 상관관계 (0) | 2021.06.22 |
[K-DIGITAL] 파이썬을 활용한 기초 통계분석(1) 빈도 분석과 이상치 (0) | 2021.06.21 |
댓글 영역