疫情数据来源
最近在写毕业论文,需要使用2020年疫情各省份数据。通过Python对原始数据进行处理,原始数据包括2019-12-01~2020-12-08期间每天各个地区的实时确诊病例、现有疑似病例、已治愈病例、已死亡病例数目。
数据来源:https://raw.githubusercontent.com/canghailan/Wuhan-2019-nCoV/master/Wuhan-2019-nCoV.csv
导入数据
import pandas as pd
data=pd.read_csv("cov.csv")
data[:5]
提取各省份月度数据
aera=['北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省', '黑龙江省', '上海市',
'江苏省', '浙江省', '安徽省', '福建省', '江西省', '山东省', '河南省', '湖北省', '湖南省', '广东省',
'广西壮族自治区', '海南省', '重庆市', '四川省', '贵州省', '云南省', '西藏自治区', '陕西省', '甘肃省',
'青海省', '宁夏回族自治区', '新疆维吾尔自治区', '台湾省','香港特别行政区','澳门特别行政区','Unknown']
month_end=["12-31","01-31","02-29","03-31","04-30","05-31","06-30","07-31","08-31","09-30","10-31","11-30"]
from tqdm import tqdm
import numpy as np
cov_month_confirm=[] #存储面板数据,所有月份的确诊、疑似、治愈、死亡数目
cov_month_suspected=[]
cov_month_cured=[]
cov_month_dead=[]
month_confirm=[] # 存储截面数据,每个月的确诊、疑似、治愈、死亡数目
month_suspected=[]
month_cured=[]
month_dead=[]
month=[]
count=0
aera_num=-1
flag=0
for i in tqdm(range(len(data))):
if data.iloc[i]["country"]!="中国": # 如果不是中国地区的不统计
continue
if not pd.isnull(data.iloc[i]["city"]): #去掉省份下的市级别的数据,避免重复统计
continue
if data.iloc[i]["date"][-5:] not in month_end:
if flag==1:
cov_month_confirm.append(month_confirm)
cov_month_suspected.append(month_suspected)
cov_month_cured.append(month_cured)
cov_month_dead.append(month_dead)
flag=0
continue
else:
if flag==0:
month_confirm=[0 for i in range(len(aera))]
month_suspected=[0 for i in range(len(aera))]
month_cured=[0 for i in range(len(aera))]
month_dead=[0 for i in range(len(aera))]
flag=1
aera_cur=data.iloc[i]["province"]
aera_num=-1
if not pd.isnull(aera_cur): # 若省份信息缺失,则纳入Unknown
aera_num=aera.index(aera_cur)
month_confirm[aera_num]+=data.iloc[i]["confirmed"]
month_suspected[aera_num]+=data.iloc[i]["suspected"]
month_cured[aera_num]+=data.iloc[i]["cured"]
month_dead[aera_num]+=data.iloc[i]["dead"]
confirm_pd=pd.DataFrame(cov_month_confirm) #转化为pandas.DataFrame
suspected_pd=pd.DataFrame(cov_month_suspected)
cured_pd=pd.DataFrame(cov_month_cured)
dead_pd=pd.DataFrame(cov_month_dead)
confirm_pd.columns=aera # 设置列名
suspected_pd.columns=aera
cured_pd.columns=aera
dead_pd.columns=aera
time_index=["20-"+str(i) for i in range(1,12)]
time_index.insert(0,"19-12")
confirm_pd.index=time_index #设置行名为时间(年份+月份)
suspected_pd.index=time_index
cured_pd.index=time_index
dead_pd.index=time_index
confirm_pd.to_csv("data/confirm.csv") # 保存至csv
suspected_pd.to_csv("data/suspected.csv")
cured_pd.to_csv("data/cured.csv")
dead_pd.to_csv("data/dead.csv")
各省份月度数据可视化
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.style.use('ggplot')
confirm_pd["北京市"].plot()
plt.title("北京市确诊累计数目")
plt.show()