COVID-19 팬데믹은 전 세계적으로 막대한 영향을 미쳤습니다. 이에 따라 실시간 데이터 분석 및 시각화의 중요성이 더욱 부각되었습니다. 특히 Pandas는 데이터 조작 및 분석을 위한 강력한 도구로, Matplotlib과 함께 사용하여 쉽게 데이터를 시각화할 수 있습니다. 이번 글에서는 Pandas를 활용해 실시간 COVID-19 데이터를 수집하고, 이를 시각화하는 방법에 대해 알아보겠습니다.
데이터 수집
먼저, COVID-19 데이터를 수집하기 위해 공개 API를 활용하겠습니다. COVID-19 데이터는 여러 기관에서 제공하고 있으며, 그 중 하나인 ‘COVID-19 API’를 사용할 것입니다. 아래 코드를 통해 실시간 데이터를 가져올 수 있습니다.
import pandas as pd
url = 'https://api.covid19api.com/dayone/country/south-korea/status/confirmed/live'
# 데이터프레임으로 읽어오기
covid_data = pd.read_json(url)
# 데이터 확인
print(covid_data.head())
이 코드를 실행하면 한국의 COVID-19 확진자 수를 포함한 데이터프레임이 생성됩니다. 데이터는 날짜별로 정렬되어 있으며, 각 날짜에 대한 확진자 수와 관련된 다양한 정보가 포함되어 있습니다.
데이터 전처리
수집한 데이터를 시각화하기 위해서는 먼저 전처리 과정이 필요합니다. 우선, 날짜 형식을 변환하고, 필요한 열만 선택하여 새로운 데이터프레임을 생성해 보겠습니다.
# 날짜 형식 변환
covid_data['Date'] = pd.to_datetime(covid_data['Date'])
# 필요 없는 열 제거
covid_data = covid_data[['Date', 'Cases']]
# 데이터 확인
print(covid_data.head())
위 코드를 통해 날짜가 datetime 형식으로 변환되고, 'Date'와 'Cases' 열만 남게 됩니다.
데이터 시각화
이제 준비한 데이터를 시각화하겠습니다. Matplotlib을 사용하여 일별 확진자 수를 나타내는 선 그래프를 그려보겠습니다.
import matplotlib.pyplot as plt
# 시각화
plt.figure(figsize=(12, 6))
plt.plot(covid_data['Date'], covid_data['Cases'], marker='o', color='blue', label='확진자 수')
plt.title('일별 COVID-19 확진자 수 (한국)')
plt.xlabel('날짜')
plt.ylabel('확진자 수')
plt.xticks(rotation=45)
plt.grid()
plt.legend()
plt.tight_layout()
# 그래프 보여주기
plt.show()
위 코드는 COVID-19 확진자 수의 변화를 시간에 따라 선 그래프로 시각화합니다. marker='o'는 각 데이터 포인트에 원형 마커를 추가하여 그래프를 더욱 직관적으로 만들어 줍니다.
데이터 인터랙티브 시각화
Pandas와 Matplotlib을 사용한 기본적인 시각화 외에도, Plotly와 같은 라이브러리를 활용하면 인터랙티브한 그래프를 생성할 수 있습니다. 아래는 Plotly를 이용한 예시입니다.
import plotly.express as px
# Plotly를 통한 인터랙티브 시각화
fig = px.line(covid_data, x='Date', y='Cases', title='일별 COVID-19 확진자 수 (한국)', labels={'Cases':'확진자 수'})
fig.show()
이 코드를 실행하면 웹 브라우저에서 확대/축소와 같은 다양한 상호작용을 수행할 수 있는 그래프가 생성됩니다. 이러한 인터랙티브한 시각화는 데이터의 패턴을 더 쉽게 이해하고 분석하는데 유용합니다.
마무리
이번 글에서는 Pandas와 Matplotlib을 사용하여 실시간 COVID-19 데이터를 수집하고, 이를 시각화하는 방법에 대해 알아보았습니다. 데이터 전처리와 시각화 과정을 통해 우리가 어떻게 데이터를 이해할 수 있는지 보여드렸습니다. Pandas와 Matplotlib 외에도 다양한 라이브러리를 활용하여 실시간 데이터를 시각화할 수 있으며, 이를 통해 의미 있는 인사이트를 도출할 수 있습니다. 이러한 기술들은 COVID-19와 같은 사회적 이슈를 분석하는 데 큰 도움이 됩니다. 계속해서 데이터 분석과 시각화에 대한 관심을 갖고 실력을 쌓아 나가시길 바랍니다.