ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코로나 검사자 확진자 통계 분석, 월별 확진자, 월별 검사자, 일별 확진자, 일별 검사자 분석
    카테고리 없음 2021. 1. 4. 10:42
    반응형
    data6 = pdata[['기준일','일일 확진자 수','일일 검사 수','누적 확진률','누적 검사 수','사망자 수']]
    data6['기준일'] = pd.to_datetime(data6['기준일'])
    
    data6 = data6.groupby(data6['기준일'].dt.strftime("%D")).sum()
    data6 = data6.reset_index()
    data6['기준일'] = pd.to_datetime(data6['기준일'])
    
    data6.sort_values(by = '기준일', inplace=True, ascending = True)
    data6 = data6.reset_index(drop = True)
    
    print(data6)
    

    새해가 밝았습니다 ~~!!

    모두 새해복 받고 코로나 이겨내시길 !!

    12월 31일에는 코로나 일별, 월별 확진자 그래프를

    그려봤는데요 ~~~

    댓글로 검사자 수, 확진자 수 그래프 비교가 있으면

    좋을것 같다고 하셔서 포스트를 작성하게 되었습니다

    대부분의 소스코드는 전 포스트와 동일합니다 ~!!

     

     

    from urllib.request import urlopen
    from urllib.parse import urlencode, unquote, quote_plus
    import urllib
    import requests
    import json
    import pandas as pd
    from datetime import datetime,timedelta
    
    
    yester = datetime.today() - timedelta(300)
    yseter =  yester.strftime("%Y%m%d")
    now_today = datetime.today() - timedelta(0)
    now_today = now_today.strftime("%Y%m%d") 
    print(yseter)
    print(now_today)
    my_api_key = '__자신이 발급받은 공공데이터 API key입력____'
    
    
    url = 'http://openapi.data.go.kr/openapi/service/rest/Covid19/getCovid19InfStateJson'
    
    queryParams = '?' + \
    'ServiceKey=' + '{}'.format(my_api_key) + \
    '&pageNo='+ '1' + \
    '&numOfRows='+ '999' + \
    '&startCreateDt={}&endCreateDt={}'.format(yseter,now_today)
    
    import xmltodict
    
    result = requests.get(url + queryParams)
    print(result)
    result = result.content 
    jsonString = json.dumps(xmltodict.parse(result), indent = 4)
    jsonString = jsonString.replace('resultCode', '결과코드').replace('resultMsg', '결과메세지').replace('numOfRows', '한 페이지 결과 수').replace('pageNo', '페이지 수').replace('totalCount', '전체 결과 수').replace('seq', '게시글번호(감염현황 고유값)').replace('stateDt', '기준일').replace('stateTime', '기준시간').replace('decideCnt', '누적 확진자 수').replace('clearCnt', '격리해제 수').replace('examCnt', '검사진행 수').replace('deathCnt', '사망자 수').replace('careCnt', '치료중 환자 수').replace('resutlNegCnt', '결과 음성 수').replace('accExamCnt', '누적 검사 수').replace('accExamCompCnt', '누적 검사 완료 수').replace('accDefRate', '누적 확진률').replace('createDt', '등록일시분초').replace('updateDt', '수정일시분초')
    
    js = json.loads(jsonString)
    print(js)
    js_check_count = js["response"]['body']['items']['item'][0]['검사진행 수']
    js = js["response"]['body']['items']['item']
    pdata = pd.DataFrame(js)
    
    pdata.sort_values(by = '기준일', inplace=True, ascending = True)
    pdata = pdata.reset_index(drop = True)
    
    daily_crn_cnt = []
    daily_check_cnt = []
    for row in range(0,len(pdata['치료중 환자 수'])-1):
        daily_crn_cnt.append(int(pdata.loc[row+1][7])-  int(pdata.loc[row][7]))
        print(int(pdata.loc[row+1][7]) ,'-', int(pdata.loc[row][7]) ,'=', int(pdata.loc[row+1][7])-  int(pdata.loc[row][7] ))
        daily_check_cnt.append(int(pdata.loc[row+1][1])- int(pdata.loc[row][1]) )
    pdata = pdata.drop(1)
    pdata['일일 확진자 수'] = daily_crn_cnt
    pdata['일일 검사 수'] = daily_check_cnt
    
    

    pdata 를 출력하면 이렇게 됩니다 !

    일자별로 데이터가 대부분 하나 있지만

    데이터의 변화로 인해서 두번씩 쌓인 경우가 있기 때문에

    기준일로 다시 집계를 했습니다.(pandas 의 groupby 힘수 사용.)

     

    출력 결과는 이렇습니다.

    전체 결과 가 필요하신 분은 댓글로 메일 남겨주세요 ㅎㅎ

    이제 출력해보겠습니다.

    확진자 수와 검사자 수의 단위는 차이가 크기때문에

    한 그래프에서 표출하면 확진자수에 대한 변화를 보기가 어렵습니다.

    그래서 각각 출력해보겠습니다.

     

     

    import matplotlib.pyplot as plt
    import numpy as np
    plt.style.use('seaborn-whitegrid')
    plt.figure(figsize=(29,9))
    
    data6['일일 확진자 수'] = pd.to_numeric(data6['일일 확진자 수'])
    data6['일일 검사 수'] = pd.to_numeric(data6['일일 검사 수'])
    # data6['사망자 수'] = pd.to_numeric(data6['사망자 수'])
    # data6['기준일'] = pd.to_datetime(data6['기준일'])
    
    # plt.plot(data6['기준일'],data6['일일 확진자 수'])
    plt.plot(data6['기준일'],data6['일일 검사 수'])
    
    

     

    아래는 일일 검사 수에 대한 그래프 입니다.

    아래는 확진자 수에 대한 그래프 입니다.

    어느정도 비슷한 추세가 확인됩니다.

    검사량은 요일에 따라 차이가 있습니다.

    아래는 최근 10일치 데이터를 출력한 결과입니다.

    염려되는 연말 연휴로 인해 검사자 수가 줄었고

    일일 확진자 수가 줄어드는 추세를 01-02, 01-03 일에 보였으나

    1월 3일에 검사한 수가 비슷함에도 불구하고

    확진자수가 다시 1000명을 넘었다는 것입니다....

     

    기준일

    일일 확진자 수

    일일 검사 수

    290

    2020-12-26

    1132

    30058

    291

    2020-12-27

    970

    36997

    292

    2020-12-28

    807

    31895

    293

    2020-12-29

    1044

    59872

    294

    2020-12-30

    1050

    61343

    295

    2020-12-31

    967

    54358

    296

    2021-01-01

    1028

    55437

    297

    2021-01-02

    820

    33477

    298

    2021-01-03

    657

    38045

    299

    2021-01-04

    1020

    35770

    연말에 접촉이 많았을까요...

    297

    2021-01-02

    820

    33477

    298

    2021-01-03

    657

    38045

    299

    2021-01-04

    1020

    35770

    그렇기 때문에 검사자 수가 다시 늘어나는 월요일, 화요일 >>> 발표는 화요일, 수요일

    수요일의 경우 1000명을 가볍게 뛰어넘는 확진자 가 발생될 수 있다는 예측이 되는 부분입니다 ㅠㅜㅠ

    1/17일까지 2.5단계가 연장되어

    많은 자영업자 분들이 고통을 겪고 있습니다..

    사태가 속히 진정되길 기도합니다...

    반응형

    댓글

Designed by Tistory.