大家好,之前我们已经将疫情可视化的各种操作基本都讲了一遍,从爬取数据到数据分析、建模、可视化甚至有关如何开发疫情实时追踪网站我们都讲了一遍,因此很久没有更新过疫情相关的文章。但最近几乎每天都有小伙伴在后台问我如何获取最新的疫情数据,尤其是历史数据很难找到。在三月份我曾经在疫情数据哪里找,看这篇就够了这篇文章中详细介绍了5种获取疫情数据的方法,不过部分API已经失效,了解到很多读者是为了科研、论文需要使用相关数据,所以今天我们再来聊聊现在如何取得疫情相关数据。
难倒大家的大多数是在全球疫情历史数据,也就是分国家时间序列数据,因为之前介绍的API接口停止返回该数据
这就导致很多使用了该接口的其他接口/第三方库直接失效(比如我强烈推荐的Akshare),虽然我们依旧能够从该项目中下载json数据自己处理但是却比较麻烦,因此我们使用其他项目提供的数据,比如这个名为covid-19[1] 的项目也提供了全球历史数据
我们进去看一下
可以看到,该项目提供了自2020年1月22日至今的全球分国家疫情历史数据,从文档中可以知道每天更新一次,所以我们可以使用Python基于该项目每天获取最新历史数据,因为是个CSV文件,爬虫都不用,pandas可以直接读取
#全球疫情历史数据
url = 'https://github.com/datasets/covid-19/blob/master/data/countries-aggregated.csv'
data = pd.read_html(url, header = 0,index_col=0)
data1 = data[0]
data1= data1['Date,Country,Confirmed,Recovered,Deaths'].str.split(',',expand=True)
data1.columns = ['日期','国家','确诊','治愈','死亡','none']
del data1['none']
data1 = data1.set_index('日期')
上面的代码使用pd.read_html直接读取,再稍作处理即可得到最新的全球疫情历史数据,不过国家名称为英文需要翻译一下
上面的历史数据包含了确诊、治愈、死亡等数据,如果你只需要确诊数据那么可以参考COVID-19[2]
该项目将确诊数据单独整理,并且这种格式的数据更方便我们去可视化。我们依旧用Pandas读取一下试试
可以看到该数据的开始时间也是1月22日,并且对重点国家提供了分省市的历史数据,我个人比较喜欢这种格式,一行就是一个国家/省份的时间序列序列数据,不需要二次处理。
中国疫情历史数据相对来说比较好搞定,使用AkShare接口[3]一行代码就能拿下,记得提前pip install akshare
#中国疫情历史数据
import akshare as ak
CN = ak.covid_19_163(indicator="中国历史累计数据")
推荐使用Akshare,一行命令搞定
#中国新增数据
CN_NEW = ak.covid_19_163(indicator="中国历史时点数据")
推荐使用Akshare,一行命令搞定
#全球疫情最新数据
WORLD = ak.covid_19_baidu(indicator="国外分国详情")
WORLD = WORLD[['area','confirmed','died','crued']]
推荐使用Akshare,一行命令搞定
#国外分城市数据
CITY = ak.covid_19_baidu(indicator="国外分城市详情")
在我们刚开始介绍全球疫情历史数据中的两个项目均提供了美国的历史数据,但是处理起来稍微有点麻烦(感兴趣的话可以试一试),所以我们换一种方式,一番搜索后发现有些网站[4]也提供相关数据
因为是Table格式,所以直接使用Pandas一行代码就可以读取
data = pd.read_html('https://covidtracking.com/data/us-daily/')[0]
可以看到,除了确诊数据还有接受检测的人数等数据,甚至还提供API,感兴趣的读者可以自己查阅使用
以上就是针对近期后台留言需求较多的疫情相关数据的Python获取方式整理,希望能够帮到大家。如果你需要的数据我没有提及的话可以在GitHub上搜一搜,比如中国分省市数据在第一个项目中就有提供,或者在后台给我留言。但是在搜索的时候一定要注意该项目的数据来源,比如我上面提到的数据均采集于各地CDC并且来源可查。如果有需要每日更新数据的话,点个在看让我知道,拜拜~
注1:上述数据获取源码可以直接复制执行
注2:以上代码均在5.21日测试通过,如果报错请查看相关文档
[1]
GitHub: https://github.com/datasets/covid-19/
[2]
GitHub: https://github.com/CSSEGISandData/COVID-19
[3]
Akshare https://www.akshare.xyz/zh_CN/latest/data/event/event.html#covid
[4]
参考链接: https://covidtracking.com/data/us-daily