본문 바로가기
문송충의 코딩하기/파이썬 데이터 분석

[파이썬] 서울시 공공데이터 API를 활용해 서울시 코로나19 확진자 데이터 분석하기 #1

by 동장군님 2020. 10. 27.
728x90
반응형

서울 코로나 확진자 데이터 파이썬으로 분석하기 #1

서울시 공공데이터 API에서 제공하고 있는 코로나 19 확진자 데이터를 가져와서 파이썬으로 다뤄보고자 한다. 시간이 늦어서 한 번에 올리지 않고 이번 포스팅에서는 단순히 서울 공공데이터에서 데이터를 어떻게 가져오는지만 코드로 보여주도록 하겠다. 별거 없다. 굉장히 쉽다. 

 

 

서울시 코로나 확진자 수 데이터셋 URL

아래 링크로 들어가서 사이트 회원가입 후 API 키 신청을 하면 모든 준비가 끝난다. 해당 API에서 사용할 데이터는 코로나 확진 순번, 코로나 확진 날짜, 코로나 접촉 이력, 지역, 현재 상태 데이터이다.

 

data.seoul.go.kr/dataList/OA-20279/S/1/datasetView.do

 

서울시 코로나19 확진자 현황

데이터 이용하기-서울시 코로나19 확진자 현황

data.seoul.go.kr

 

Python Code

API 신청 후 발급받은 API 키 값을 활용해서 데이터를 가져오도록 하겠다. 우선 아래 코드를 통해서 해당 API에서 제공하고 있는 총 데이터 행 수를 볼 것이고, 출력 결과 총 5,827개 데이터가 나왔다. 이 숫자가 바로 10월 26일까지 누적 서울시 코로나 확진자 수로 보면 된다.

 

import requests
import pandas as pd

url='http://openapi.seoul.go.kr:8088/API KEY/json/Corona19Status/1/2'
re=requests.get(url)
rjson=re.json()
total_num=rjson['Corona19Status']['list_total_count']

 

총 확진자 수를 확인했으면 바로 코로나 확진자 개별 데이터를 보도록 하겠다. 총 5,827개의 데이터가 있었기 때문에 반복문으로 데이터를 가져오도록 하겠다. 굉장히 쉽다. 별 설명이 필요가 없다.

 

ids=[]
corona_dates=[]
address=[]
corona_contact_detail=[]
status=[]

for i in range(1,int(round(total_num/1000,0))+1):
    end=i*1000
    start=end-1000 +1
    
    if end >total_num:
        end = total_num
    
    url=f'http://openapi.seoul.go.kr:8088/API KEY/json/Corona19Status/{start}/{end}'
    re=requests.get(url)
    rjson=re.json()
    
    for v in rjson['Corona19Status']['row']:
        ids.append(v['CORONA19_ID'])
        corona_dates.append(v['CORONA19_DATE'])
        address.append(v['CORONA19_AREA'])
        corona_contact_detail.append(v['CORONA19_CONTACT_HISTORY'])
        status.append(v['CORONA19_LEAVE_STATUS'])
        
df=pd.DataFrame([ids,corona_dates,address,corona_contact_detail,status]).T
df.columns=['코로나 순번','확진 날짜','지역','접촉','현재 상태']

 

결과물

마무리

이번 포스팅에서는 API를 활용해서 데이터를 가져와 봤다. 다음 시간에는 위 데이터를 사용해서 다양한 분석을 해보도록 하겠다. 

 

728x90
반응형

댓글