曾经有支疫苗我没有珍惜,直到江苏疫情来临才追悔莫及,Python可视化带你了解疫苗的所有信息

本文使用Python的plotly库,对2020年至2021年全球新冠疫苗的研发、分布和接种情况进行数据可视化分析。内容涵盖疫苗品牌、各国接种进度、疫苗类型及各品牌接种时间等,帮助读者全面了解新冠疫苗信息。
摘要由CSDN通过智能技术生成

打油诗

曾经有支疫苗摆在我的面前
我不懂珍惜
直到危险来临才追悔莫及
人世间最痛苦的事莫过于此
如果上天能够给我一个再来一次的机会
我会说:我愿意
如果非要加上一个期限
我希望是:马上!
如果非要打多一针的话
我希望左右手各一针

在这里插入图片描述

2020年底以来,欧美,印度,中国,俄罗斯等多国得制药公司纷纷推出了针对新冠肺炎的疫苗,中国也一直推广接种免费疫苗,但是对于打疫苗应该很多小伙伴都没放在心上,直到八月份,疫苗卷土重来,没打的疫苗的你,现在是不是心慌慌呢。
在这里插入图片描述

今天这篇文章就是要用Python完成2020年到现在2021年全球疫情形势,各类疫苗在全球的地理分布,疫苗在各国的接种进度进行可视化展示,带你了解新冠疫苗的所有信息。

一、安装plotly库

因为这部分内容主要是用plotly库进行数据动态展示,所以要先安装plotly库

pip install plotly

除此之外,我们对数据的处理还用了numpy和pandas库,如果你没有安装的话,可以用以下命令一行安装

pip install plotly numpy pandas

#导入所需库
import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go

在这里插入图片描述

二、疫苗研发情况

各国采用的疫苗品牌概览

通过对各国卫生部门确认备案的疫苗品牌,展示各厂商的疫苗在全球的分布

#读取数据
locations=pd.read_csv(r'data/locations.csv')
locations

在这里插入图片描述

这里我们的loacation中可以看到各个地方的疫苗和数据的来源与数据来源的网页。

而在中国已上市的新冠疫苗分为两大类共五款,有打一针的、两针的,还有三针的。专家表示,它们都符合有效保护的标准,现在通常我们打的都是三针的。

三、数据处理

目前来说,我国新冠疫苗主要可以分为灭活疫苗、腺病毒载体疫苗、减毒流感疫苗、重组蛋白疫苗,以及核酸疫苗5种,其中:

  1. 灭活疫苗,包括国药中生北京公司、国药中生武汉公司、北京科兴中维公司生产的3款灭活疫苗
  2. 腺病毒载体疫苗,为天津康希诺公司生产的5型腺病毒载体疫苗
  3. 重组蛋白疫苗,为重组新型冠状病毒疫苗(CHO细胞)
#发现数据中vaccines列中包含了多个品牌的情况,将这类数拆为多条
vaccines_by_country=pd.DataFrame()
for i in locations.iterrows():
    df=pd.DataFrame({'Country':i[1].location,'vaccines':i[1].vaccines.split(',')})
    vaccines_by_country=pd.concat([vaccines_by_country,df])
vaccines_by_country['vaccines']=vaccines_by_country.vaccines.str.strip()# 去掉空格
vaccines_by_country.vaccines.unique() # 查看疫苗的种类

在这里插入图片描述

在这里插入图片描述

四、可视化疫苗的分布情况

#绘图
fig=px.choropleth(vaccines_by_country,
                locations='Country',
                locationmode='country names',
                color='vaccines',
                facet_col='vaccines',
                facet_col_wrap=3)
fig.update_layout(width=1200, height=1000)
fig.show()

在这里插入图片描述

各品牌分布:

  1. Pfizer/BioNTech 主要分布于北美,南美的智利、厄瓜多尔,欧洲、沙特
  2. Sputnik V 主要分布于俄罗斯、伊朗、巴基斯坦、非洲的阿尔及利亚以及南美的玻利维亚、阿根廷
  3. Oxford/AstraZeneca 主要分布于欧洲、南亚、巴西
  4. Moderna 主要分布在北美和欧洲
  5. Sinopharm/Beijing 主要分布在中国、北非部分国家和南美的秘鲁
  6. Sinovac 主要分布在中国、南亚、土耳其和南美
  7. Sinopharm/Wuhan 主要仅分布于中国
  8. Covaxin 主要分布于印度

综上可以发现,全球采用最广的仍是Pfizer/BioNTech,国产疫苗中Sinovac(北京科兴疫苗)输出到了较多国家,而我有幸打的就是北京科兴三针。

五、各品牌疫苗上市情况(仅部分国家)

根据数据集中提供的部分国家20年12月以来各品牌疫苗接种情况,分析各品牌上市时间及市场占有情况

#读取数据
vacc_by_manu=pd.read_csv(r'data/vaccinations-by-manufacturer.csv')
#定义函数,用于从原始数据中组织宽表
def query(df,country,date,vaccine):
    try:
        result=df.loc[(df.location==country)&(df.date==date)&(df.vaccine==vaccine)].total_vaccinations.iloc[0]
    except:
        result=np.nan
    return result
vacc_by_manu

在这里插入图片描述

在这里插入图片描述

六、组织宽表

#组织宽表
vacc_combined=pd.DataFrame(columns=['location','date','Pfizer/BioNTech', 'Sinovac', 'Moderna', 'Oxford/AstraZeneca'])
for i in vacc_by_manu.location.unique():
    for j in vacc_by_manu.date.unique():
        for z in vacc_by_manu.vaccine.unique():
            result=query(vacc_by_manu,i,j,z)
            if vacc_combined.loc[(vacc_combined.location==i)&(vacc_combined.date==j)].empty:
                result_df=pd.DataFrame({'location':i,'date':j,z:result},index=['new'])
                vacc_combined=pd.concat([vacc_combined,result_df])
            else:
                vacc_combined.loc[(vacc_combined.location==i)&(vacc_combined.date==j),z]=result
vacc_combined

在这里插入图片描述

七、补全缺失数据

#补全缺失数据
temp=pd.DataFrame()
for i in vacc_combined.location.unique():#按国家进行不全
    r=vacc_combined.loc[vacc_combined.location==i]
    r=r.fillna(method='ffill',axis=0)#先按最近一次的数据进行补全
    temp=pd.concat([temp,r])#若没有最近的数据,认为该项为0
temp=temp.fillna(0).reset_index(drop=True)
temp

在这里插入图片描述

在这里插入图片描述

八、绘制堆叠柱状图

#绘制堆叠柱状图
fig=px.bar(temp,
        x='location',
        y=vacc_by_manu.vaccine.unique(),
        animation_frame='date',
        color_discrete_sequence=['#636efa','#19d3f3','#ab63fa','#00cc96']#为了查看方便,品牌颜色与前一部分对应
        )
fig.show()

在这里插入图片描述

数据中主要涉及Pfizer/BioNTech、Sinovac、Moderna、Oxford/AstraZeneca 4个品牌,其中:

  1. Pfizer/BioNTech上市时间最早,20年12月24日时即已经开始在智利接种了,之后在12月底开始在欧洲接种,21年1月12日开始在美国接种
  2. Sinovac 21年2月2日开始在智利接种Moderna 21年1月8日先在意大利开始接种,随后12日即开始在美国大量接种,最终在欧洲及美国均大量接种
  3. Oxford/AstraZeneca 21年2月2日先在意大利开始接种,随后即在欧洲开始接种
  4. 整体上看,Pfizer/BioNTech上市最早,且在全球占有份额最大,Moderna 随后上市,主要占据美国和欧洲市场,Sinovac、Oxford/AstraZeneca上市均较晚,其中Sinovac占据了智利的大部分市场份额,而Oxford/AstraZeneca主要分布于欧洲,且占份额很小

我国最新疫情报告:
在这里插入图片描述
小伙伴们有苗的快打苗,没苗的快预约。
到这里结束了,感谢观看,更多Python精彩内容可以关注小编+私信云芸共享入门Python资源。
在这里插入图片描述

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunyun云芸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值