본문 바로가기

Programming/Machine Learning

Matplotlib교통사고데이터실습

Traffic_Accident_2017.csv
0.76MB

import matplotlib.pyplot as plt

from matplotlib import font_manager, rc
font_name = font_manager.FontProperties(fname = "c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
#  차트 한글보이기

import pandas as pd
pd.set_option('display.max_rows', 1000)  # 생략되는 행 없이 모두 표시
pd.set_option('display.max_columns', 1000)  # 생략되는 열 없이 모두 표시
pd.set_option('display.max_colwidth', -1)  # 최대 길이에 맞춰 자동 셋팅

data = pd.read_csv("data/Traffic_Accident_2017.csv", encoding ="euc-kr")  # Pandas가 있어야 읽음

data.head()  # 데이터가 너무 많은 경우 상위 5개 확인
data.shape  # 데이터가 너무 많은 경우 크기 확인

# 데이터 정제
temp = data["요일"].value_counts()  #.value_counts 개수 확인
y = temp[["월","화","수","목","금","토","일"]]  # temp를 월 화 수 목 금 토 일 순으로 정렬
y

x = y.index  # Series.index : Series에서 인덱스만꺼내오기
x

yy = y.values  # Series.values : Series에서 값만꺼내오기
yy

plt.bar(x,yy)
plt.xlabel('요일')
plt.ylabel('사건발생 수')
plt.title('2017 요일별 교통사고 발생건수')
plt.show()

xx = range(7)
plt.bar(xx,yy)
plt.xticks(xx,["월","화","수","목","금","토","일"])
plt.ylim(500,650)
plt.xlabel('요일')
plt.ylabel('사건발생 수                ', rotation = 360)
plt.title('2017 요일별 교통사고 발생건수')
plt.show()

# 1. 차 vs차 boolean 색인
data.columns  # 컬럼이름을 정확하게 확인하기 위해 사용

car = data[data['사고유형_대분류']=='차대차']  # 사고유형이 차대차인 모든 data가 car로 들어갔다,

count = car[['사상자수','발생지시도']]  # 사고유형이 차대차인 모든 data가 car로 들어갔고 그 중에서 사상자수와 발생지시도 컬럼을 가져왔다.
count

result = count.groupby('발생지시도').sum()  # 도시별 총합
result

x = result.index
x

y = result['사상자수']
y

plt.figure(figsize=(20,10))
plt.bar(x, y)
plt.xlabel('발생지시도')
plt.ylabel('사상자수')
plt.title('발생시도별 사상자수')
plt.show()

'Programming > Machine Learning' 카테고리의 다른 글

BMI 학습하기  (0) 2020.02.16
서울시 구별 CCTV 현황 분석  (0) 2020.02.16
Matplotlib 실습  (0) 2020.02.16
DataFrame 실습  (0) 2020.02.16
데이터 전처리  (0) 2020.02.16