新冠肺炎疫情分析(panda、matplotlib.pyplot)
发布时间
阅读量:
阅读量
主要目标是针对2020年新冠肺炎疫情快速发展的阶段进行深入分析,并全面了解其发展变化的特征。首先需要了解的是数据集
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['figure.figsize']=(10.0,6.0)
plt.rcParams['font.family']=['sans-serif']
plt.rcParams['font.sans-serif']=['SimHei']
df=pd.read_csv('https://www.gairuo.com/file/data/dataset/countries-aggregated.csv',parse_dates=['Date'])
df.tail()
'''
12. Date Country Confirmed Recovered Deaths
19339 2020-05-04 West Bank and Gaza 362 102 2
19340 2020-05-04 Western Sahara 6 5 0
19341 2020-05-04 Yemen 12 1 2
19342 2020-05-04 Zambia 137 78 3
19343 2020-05-04 Zimbabwe 34 5 4
19. '''
AI写代码
首先来看一下中国累计确诊人数趋势,可见爆发之初是快速上升的,如下:
(
df.assign(Date=lambda x:x.Date.dt.strftime('%Y-%m-%d'))
.loc[df.Country=='China'] #只选中国的
.set_index('Date') #日期为索引
.Confirmed #看确诊的
.plot() #画图
)
AI写代码

再看中国新增确诊趋势,在2020年初2月初有一个确诊增加高峰,如下:
(
df.assign(Date=lambda x:x.Date.dt.strftime('%Y-%m-%d'))
.loc[df.Country=='China']
.set_index('Date')
.assign(new=lambda x:x.Confirmed.diff())
.new
.plot()
)
AI写代码

找出确诊病例在1万以上的国家中死亡率排名前十的国家,如下:
(
df.loc[df.Date==df.Date.max()] #由于是累计数据,所以需要看最新的
.loc[df.Confirmed>10000] #确认10000人以上
.assign(rate=df.Deaths/df.Confirmed) #增加死亡率
.sort_values('rate',ascending=False) #按死亡率最高排序
.set_index('Country') #国家为索引
.rate #选取死亡率
.head(10) #取前10个
.sort_values(ascending=True) #为了图形的直观性,按降序排列
.plot
.barh() #横向柱状图
)
AI写代码

中美两国新冠肺炎确诊病例数量趋势如下:
(
df.assign(Date=lambda x:x.Date.dt.strftime('%Y-%m-%d'))
.loc[(df.Country.isin(['China','US'])),['Date','Country','Confirmed']]#选出需要的数据
.groupby(['Country','Date']) #按国家进行分组
.max() #聚合
.unstack() #解堆
.T #转置
.droplevel(0) #删除一级索引
.plot() #绘图
)
AI写代码

中美两国新冠肺炎病例的死亡率对比,如下:
(
df.loc[(df.Country.isin(['China','US'])&(df.Date==df.Date.max()))] #只要这两个国家的最新数据
.assign(rate=df.Deaths/df.Confirmed) #增加死亡率
.set_index('Country') #将国家设置为索引
.rate #选取死亡率
.plot
.bar() #绘图
)
AI写代码

中美两国新冠肺炎病例每日死亡率变化对比,如下:
(
df.assign(Date=lambda x:x.Date.dt.strftime('%Y-%m-%d'))
.loc[(df.Country.isin(['China','US']))] #只要这两个国家的数据
.assign(rate=df.Deaths/df.Confirmed) #增加死亡率
.groupby(['Country','Date']) #分组
.max() #聚合
.rate #选取死亡率
.unstack() #解堆
.T #转置
.plot() #绘图
)
AI写代码

全部评论 (0)
还没有任何评论哟~
