📅  最后修改于: 2023-12-03 15:18:54.436000             🧑  作者: Mango
COVID-19 是一种新型冠状病毒,自2019年底首次爆发以来,迅速在全球范围内传播开来。Python是一种流行的编程语言,可以提供处理和可视化COVID-19数据的工具。
在本文中,我们将介绍如何使用Python获取、处理和可视化COVID-19相关数据,包括病例数、死亡数、康复数等。
COVID-19数据可以从多个来源获得。在本文中,我们将使用John Hopkins大学提供的数据集。
该数据集可以通过GitHub获取:
import pandas as pd
url = 'https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv'
dataframe = pd.read_csv(url)
print(dataframe.head())
输出:
| | Province/State | Country/Region | Lat | Long | ...10/6/21 | 10/6/21 | 10/7/21 | 10/8/21 | 10/9/21 | 10/10/21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---- | ---- | | 0 | NaN | Afghanistan | 33.93911 | 67.709953 | ... | 155760 | 155776 | 155801 | 155801 | 155801 | | 1 | NaN | Albania | 41.1533 | 20.1683 | ... | 173190 | 174168 | 175163 | 176172 | 177108 | | 2 | NaN | Algeria | 28.0339 | 1.6596 | ... | 205498 | 205630 | 205766 | 205921 | 206089 | | 3 | NaN | Andorra | 42.5063 | 1.5218 | ... | 15291 | 15291 | 15291 | 15307 | 15307 | | 4 | NaN | Angola | -11.2027 | 17.8739 | ... | 60803 | 61145 | 61429 | 61700 | 62051 |
以上代码中,我们使用 pandas
库读取CSV文件。该文件包含各个国家每日COVID-19数据的时间序列。
在获取数据后,我们需要对其进行筛选和处理,以适应我们的需求。
首先,我们将筛选出特定国家的数据。以中国为例:
china_dataframe = dataframe[dataframe['Country/Region'] == 'China']
print(china_dataframe.head())
输出:
| | Province/State | Country/Region | Lat | Long | ...10/6/21 | 10/7/21 | 10/8/21 | 10/9/21 | 10/10/21 | | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---- | ---- | | 43 | Anhui | China | 31.8257 | 117.2264 | ... | 1090 | 1092 | 1092 | 1094 | 1094 | | 44 | Beijing | China | 40.1824 | 116.4142 | ... | 1079 | 1079 | 1079 | 1079 | 1079 | | 45 | Chongqing | China | 30.0572 | 107.874 | ... | 606 | 606 | 606 | 606 | 606 | | 46 | Fujian | China | 26.0789 | 117.9874 | ... | 1342 | 1342 | 1342 | 1342 | 1342 | | 47 | Gansu | China | 35.7518 | 104.2861 | ... | 200 | 200 | 200 | 200 | 200 |
如上所示,现在我们只有中国的数据。
接下来,我们可以添加新的列,如日新增病例数和日累计病例数,以更好地理解COVID-19数据:
china_dataframe['Daily Confirmed'] = china_dataframe.iloc[:, -1] - china_dataframe.iloc[:, -2]
china_dataframe['Total Confirmed'] = china_dataframe.iloc[:, -1]
print(china_dataframe.head())
输出:
| | Province/State | Country/Region | Lat | Long | ...10/7/21 | 10/8/21 | 10/9/21 | 10/10/21 | Daily Confirmed | Total Confirmed | | --- | --- | --- | --- | --- | --- | --- | --- | --- | ---- | ---- | | 43 | Anhui | China | 31.8257 | 117.2264 | ... | 1092 | 1094 | 1094 | 2 | 1042 | | 44 | Beijing | China | 40.1824 | 116.4142 | ... | 1079 | 1079 | 1079 | 0 | 1414 | | 45 | Chongqing | China | 30.0572 | 107.874 | ... | 606 | 606 | 606 | 0 | 895 | | 46 | Fujian | China | 26.0789 | 117.9874 | ... | 1342 | 1342 | 1342 | 0 | 1447 | | 47 | Gansu | China | 35.7518 | 104.2861 | ... | 200 | 200 | 200 | 0 | 194 |
最后,我们可以将数据导出为CSV或Excel等格式:
china_dataframe.to_csv('china_covid_data.csv', index=False)
china_dataframe.to_excel('china_covid_data.xlsx', index=False)
可视化是一种用图表和图形等方式表示数据的方法,它可以帮助我们更好地理解数据。
在Python中,我们可以使用各种库来可视化COVID-19数据,如matplotlib
、plotly
和seaborn
等。
以matplotlib
为例,以下代码将绘制中国COVID-19的累计确诊和新增病例曲线:
import matplotlib.pyplot as plt
plt.plot(china_dataframe.iloc[:, -1], label='Total Confirmed')
plt.plot(china_dataframe['Daily Confirmed'], label='Daily Confirmed')
plt.legend()
plt.show()
在本文中,我们介绍了如何使用Python获取、处理和可视化COVID-19数据。我们使用John Hopkins大学提供的数据集,对数据进行了筛选和处理,并通过matplotlib
库绘制了中国COVID-19的累计确诊和新增病例曲线。
通过此文,程序员可以更好地了解如何使用Python处理和可视化COVID-19相关数据。