언어/Python

Python_Traffic_Accident(실습)

asu2880 2022. 6. 23. 17:56

데이터 받아오기

import pandas as pd
data = pd.read_csv('./data/Traffic_Accident_2017.csv', encoding = 'euc-kr')
data

 

경도와 위도 표시하기

# scatter : 산점도
x = data['경도']
y = data['위도']

plt.scatter(x, y, alpha = 0.1) # alpha : 투명도
plt.xlim(123, 133) # 왼쪽으로 치우치는 현상 해결
plt.show()

 

요일별 사고수 그래프 그리기

# bar 차트
# 요일별로 사고 수를 시각화
# x에는 요일, y에는 요일별 사고수

temp = data['요일'].value_counts()
x = ['월','화','수','목','금','토','일']
x = y.index
y = temp[ ['월','화','수','목','금','토','일'] ]

plt.title('')

plt.bar(x, y)

plt.ylim(500, 620)

plt.xlabel('요일')
plt.ylabel('사고 건수', rotation = 0, position=(1, 0.55)) #포지션 : (x, y 축에 대한 위치)

plt.show()

 

차대차 사고의 사상자수를 도시별로 시각화하기

# 차 VS 차 사고의 사상자수를 도시별로 시각화
data.columns

data['발생지시도'].unique()

data['사고유형_대분류'].unique()
# 사고유형 대분류에 차대차 값들 중 
# 사상자수와 발생지시도 컬럼을 사용

# 사고유형 대분류에 차대차 값을 가지고 있는 인덱스 : 불리언 인덱싱
# 사상자수와 발생지시도 컬럼 : 리스트 사용 인덱싱

result = data.loc[data['사고유형_대분류']=='차대차', ['사상자수', '발생지시도']].groupby('발생지시도').sum()

x = result.index
y = result.values

plt.figure(figsize = (15, 8)) #그래프 크기 조정

plt.plot(x, y)

plt.xlabel('지역')

plt.ylabel('사상자수', rotation = 0)

plt.title('차 vs 차 교통사고의 사상자수')

plt.show()

 

plt.figure(figsize = (15, 8)) #그래프 크기 조정

plt.bar(x, y_bar)

plt.xlabel('지역')
plt.ylabel('사상자수', rotation = 0)
plt.title('차 vs 차 교통사고의 사상자수')

plt.show()

# y 데이터 1차원으로 만들기
# 1번째 방법
y_bar = []
for i in range(len(y)):
    y_bar.append(y[i,0])
y_bar

y_bar2 = y.reshape(17)

y_bar3 = y.reshape(-1)

y_bar4 = y[:,0]

 

교통사고가 가장 많이 발생하는 시간대 알아보기

# 교통사고가 가장 많이 발생하는 시간대를 알아보자
time = data['발생년월일시'] % 100

# 0~2, 3~5 ,,,
범위 = [-1, 2, 5, 8, 11, 14, 17, 20, 23]
라벨 = ['0~2','3~5','6~8','9~11','12~14','15~17','18~20','21~23']

result = pd.cut(time, bins = 범위, labels = 라벨).value_counts().sort_index()
result

 

plt.pie(result, labels = 라벨, autopct='%1.1f%%') # 정규표현식: '%1.1f%%'
plt.show()

728x90
반응형

'언어 > Python' 카테고리의 다른 글

Python_maplotlib  (0) 2022.06.23
Python_경찰청 데이터 분석(실습)  (0) 2022.06.23
Python_데이터 합치기  (0) 2022.06.22
Python_나이 데이터 분석(실습)  (0) 2022.06.22
Python_pandas_학급별 데이터 분석(실습)  (0) 2022.06.22