全球疫苗接种状况数据分析

1.分析背景

众所周知,最安全也是最有效的面对疫情的方法就是使用疫苗,为了尽早战胜疫情,世界各国都在尽自身之所能研发疫苗。而现在,在疫情出现后不到一年的时间内,我们成功研制出了对抗严重急性呼吸综合征冠状病毒2(SARS-CoV-2),即新冠病毒的疫苗。随着疫苗的研发和临床试验成功,如何更有效且更全面的普及疫苗接种成为了如今各国面临的首要课题。

2.数据来源

Coronavirus (COVID-19) Vaccinations - Statistics and Research - Our World in Data

研究人员和数据收集人员:
Hannah Ritchie, Esteban Ortiz-Ospina, Diana Beltekian, Edouard Mathieu, Joe Hasell, Bobbie Macdonald, Charlie Giattino, Cameron Appel and Max Roser

网页制作人员:
Breck Yunits, Ernst van Woerden, Daniel Gavrilov, Matthieu Bergel, Shahid Ahmad, Jason Crawford, and Marcel Gerber

(排名不分先后)

3.字段说明

  • location:国家(或一个国家内的地区)的名称。
  • iso_code:三个字母的国家/地区代码。
  • date:观察日期。
  • total_vaccinations:总接种数。根据特定的(例如,分次接种型疫苗)剂量方案,每次接种都视为该指标增加,因此可能不等于总接种人数。即,如果某人接种一剂疫苗,则该指标增加1。如果他们接种第二剂,则该指标再次增加1。
  • total_vaccinations_per_hundred:全国总人口中每100人的接种数量。
  • daily_vaccinations_raw:每日接种数量(原始数据),仅在有连续数据时计算。这是为检查数据并提高透明度而提供的原始指标,但是我们强烈建议您在分析每日疫苗接种率时使用daily_vaccinations而非本字段。
  • daily_vaccinations:每天接种数量(7日平滑)。对于不会每天报告数据的国家,假设在没有报告数据的时期内每天剂量的变化均等。在这种假设下将产生完整的序列,然后将得到的序列进行7天移动平均。
  • daily_vaccinations_per_million:该国总人口中的每1百万人中每日接种数。
  • people_vaccinated:接受至少一剂疫苗的总人数。如果某人接种了第一剂2剂疫苗,那么该指标将增加1。如果他们接种了第二剂,则该指标保持不变。
  • people_vaccinated_per_hundred:全国总人口的每100人中至少接受过一剂疫苗的人数。
  • people_fully_vaccinated:接受疫苗接种方案规定的所有剂量的总人数。如果某人接种了第一剂2剂疫苗,则该指标保持不变。如果他们接受第二剂,则该指标会增加1。
  • people_fully_vaccinated_per_hundred:全国总人口中的每100人中完全接种人数。

4.分析工具

MySQL

5.分析步骤

5.1.数据处理

5.1.1.导入数据

通过MySQL Workbench将vaccinations.csv导入至名为vac的schema下。

查看数据类型

describe vac.vaccinations;

结果如下图

可以看到所有字段均为TEXT型并允许空值,且不包含主键。将date更改为日期型数据,其余字段由于数据中本身存在空值(无统计结果),无法直接将字段转换为整型,因此在之后的运算时需注意TEST型数据的比较逻辑,使用函数将数据类型转换后再进行运算。

5.1.2.检查重复

select count(*)
from(select distinct * from vac.vaccinations);

结果如下在这里插入图片描述
行数与导入的原始数据行数一致,说明不存在完全重复行。

5.1.3.添加主键

由于数据表本身没有主键,且所有数据均无重复,在分析时可直接向原表中添加主键num便于分析。

alter table vac.vaccinations 
add num int unsigned primary key auto_increment;

5.1.4.查看主要词条逻辑

1.total_vaccinations
由于total_vaccinations表示总接种次数,因此total_vaccinations必随时间的推移上升,由于分析所使用的数据本身存在统计不完整问题,因此在分析total_vaccinations的逻辑时,侧重于最新数据情况,即各国最近日期对应的总疫苗接种量必为最大值。

select n.location, n.mdate, x.date, x.mtotal_vaccinations
from(select location, max(cast(date as date)) as mdate
    from vac.vaccinations
    group by location) as n
inner join
(select m.location, v.date, m.mtotal_vaccinations
 from(select location, max(total_vaccinations + 0) as mtotal_vaccinations
     from vac.vaccinations
     group by location) as m
 join vac.vaccinations as
  • 2
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值