데이터사이언스/시각화

12월 서울시 코로나 확진자 및 사망자 수 시각화

ghtis1798 2020. 12. 31. 03:28

코로나 데이터 시각화

1. 데이터 수집

캐글에 있는 국내 코로나 환자들에 대한 데이터를 분석해보도록 하겠습니다.

COVID-19 Korea datset

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)

서울, 12월 데이터 추출 결과

seoul.info()

서울, 12월 데이터 요약 정보

역시 잘 추출되었지만 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월 전체 확진자수 그래프

서울의 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()

서울, 12월 일별 확진자 및 사망자 수

사망자 수 역시 꾸준히 증가하고 있습니다.

일별 확진자 수는 오르락 내리락하고 있으나 25일 고점을 찍었군요. 😢

아마도 연말과 크리스마스였던 것이 코로나 바이러스에 영향을 준 것으로 예상됩니다.

이상으로 파이썬과 Plotly를 이용한 간단한 시각화를 진행해 보았습니다. 😁

'데이터사이언스 > 시각화' 카테고리의 다른 글

Visualization 코로나 데이터 분석하기  (0) 2021.03.04