1. 데이터 수집
캐글에 있는 국내 코로나 환자들에 대한 데이터를 분석해보도록 하겠습니다.
www.kaggle.com/hongsean/covid19-in-korea-dataset?select=COVID_Korea_geo.csv
전체 데이터에서 필요한 것들만 뽑아내는 과정을 거친 뒤에 시각화를 진행하였습니다.
COVID_Korea_geo.csv로부터 12월 서울에 대한 정보만 뽑아내 시각화할 것입니다.
우선 필요한 라이브러리인 pandas와 plotly를 가져오고 최대 행 출력 수도 변경했습니다.
import pandas as pd
import plotly.graph_objects as go
pd.set_option('display.max_row', 100)
COVID_Koread_geo.csv 파일을 불러왔고, 적절한 타입의 인코딩과정을 거쳤습니다.
geo = pd.read_csv('COVID_Korea_geo.csv', encoding='EUC-KR')
geo.info()
다음은 불러온 파일에 대한 정보입니다.
총 15개의 Column과 5808개의 row로 구성되어 있습니다.
데이터 타입은 날짜를 제외하고 모두 숫자형변수입니다.
2. 데이터 전처리
캐글 링크로 가면 모든 Column에 대한 정보를 볼 수 있지만,
저희는 필요한 Column 5개만을 뽑아내도록 하겠습니다.
geo = geo[['createDt','deathCnt','defCnt', 'gubun', 'overFlowCnt', 'localOccCnt']]
각각의 Column별 의미하는 바는 다음과 같습니다.
geo.head()
잘 추출되었군요. 😎
추출된 데이터에 어떤 도시들이 있는지 살펴보겠습니다.
geo.gubun.unique()
저희는 서울시 데이터만 뽑아낸 뒤 그 중에서도 12월달 데이터만 추출하겠습니다.
seoul = geo[geo['gubun']=='서울']
seoul = seoul[seoul['createDt'].str.contains('-12-')].reset_index()
seoul.head(5)
seoul.info()
역시 잘 추출되었지만 row 수가 33개인 것은 뭔가 이상합니다.
분명 12월은 31일인데 말이죠. 🤦♂️🤦♂️
seoul.head(40)
확인해보니 역시나 중복되어 있는 값과 이상치가 존재합니다.
모두 삭제해 줍니다.
# index 6,7,8,12,16 삭제
seoul.drop(index=[6,7,8,12,16], inplace=True)
추가적으로 12월 1일부터 나오도록 정렬해주겠습니다.
seoul.sort_values(by='createDt', ascending=True, inplace=True)
seoul.head(5)
이제 시각화하는 일만 남았군요. 😊
3. 데이터 시각화
fig = go.Figure()
fig.add_trace(go.Scatter(x=seoul['createDt'], y=seoul['defCnt'], mode='lines'))
fig.show()
서울의 12월 전체 확진자수는 기울기가 거의 일정합니다. 확진자수도 꾸준히 증가하고 있고요.
일별 확진자 수 및 사망자 수를 확인해보겠습니다.
fig = go.Figure()
fig.add_trace(go.Scatter(x=seoul['createDt'], y=seoul['localOccCnt'],
name='서울 확진자 수', mode='lines'))
fig.add_trace(go.Scatter(x=seoul['createDt'], y=seoul['deathCnt'],
name='사망자 수', mode='lines'))
fig.show()
사망자 수 역시 꾸준히 증가하고 있습니다.
일별 확진자 수는 오르락 내리락하고 있으나 25일 고점을 찍었군요. 😢
아마도 연말과 크리스마스였던 것이 코로나 바이러스에 영향을 준 것으로 예상됩니다.
이상으로 파이썬과 Plotly를 이용한 간단한 시각화를 진행해 보았습니다. 😁
'데이터사이언스 > 시각화' 카테고리의 다른 글
Visualization 코로나 데이터 분석하기 (0) | 2021.03.04 |
---|