参考:python数据分析案例简单实战项目(二)–新冠疫情数据分析
采用工具软件:pycharm(数据处理),tableau(可视化)
数据:“泰迪杯”数据分析职业技能大赛 B 题 新冠疫情数据分析
数据+生成数据: 提取码:zxcv
# _*_ coding:utf-8 _*_
# 作者:yunmeng
# 日期:2021年11月06日
import pandas as pd
data = pd.read_excel(r"D:\Users\yunmeng\PycharmProjects\数据分析\泰迪\相关文件\新冠疫情分析数据.xlsx",header =0,)#导入数据
df=data.copy()
df.rename(columns={'新增确诊':'累计确诊人数','新增治愈':'累计治愈人数','新增死亡':'累计确诊死亡'},inplace=True)
index = pd.date_range('20200110','20200630')#创建日期索引
city_list=df['城市'].value_counts().index.to_list()
count=0
for i in city_list:
da=df[df['城市']==i]
da = da.set_index('日期').reindex(index, fill_value=0) # 进行日期的补全
da['城市'] = i # 补全城市列数据
da = da.rename_axis('日期').reset_index() # 保留日期列
da['累计确诊人数'] = da['累计确诊人数'].cumsum() # 累加
da['累计治愈人数'] = da['累计治愈人数'].cumsum() # 累加
da['累计确诊死亡'] = da['累计确诊死亡'].cumsum() # 累加
list2 = ['武汉', '深圳', '保定']
if i in list2:
tem_15=[]
tem_25=[]
for i in range(1, 7):
# tem_15.append( da[da['日期'] == f"2020-0{i}-10"])
# tem_25.append(da[da['日期'] == f"2020-0{i}-25"])
tem_15.append(da[da['日期'] == f"2020-0{i}-10"].index.to_list()[0])
tem_25.append(da[da['日期'] == f"2020-0{i}-25"].index.to_list()[0])
print(da.loc[tem_15, :])
print(da.loc[tem_25, :])
da = da.set_index("城市") # 将城市作为索引 存入csv是第一行便是城市
if count == 0:
da.to_csv(r"C:\Users\yunmeng\Desktop\task1_1.csv", index=True, na_rep='0', encoding='utf-8',mode = 'a')#写入csv文件,包括表头和索引 encoding需要用GB18030否则文字乱码
else:
da.to_csv(r"C:\Users\yunmeng\Desktop\task1_1.csv", index=True, header=None, na_rep='0', encoding='utf-8',
mode='a') # 追加写入,不包括表头
count+=1
# _*_ coding:utf-8 _*_
# 作者:yunmeng
# 日期:2021年11月07日
import pandas as pd
index = pd.date_range('20200110','20200630')
city_data = pd.read_excel(r"D:\Users\yunmeng\PycharmProjects\数据分析\泰迪\相关文件\新冠疫情分析数据.xlsx", header=0,sheet_name=1) # 导入数据 sheet_name=1读取第二张表
df = pd.read_excel(r"D:\Users\RK\PycharmProjects\数据分析\泰迪\相关文件\新冠疫情分析数据.xlsx", header=0) # 导入表1数据 每日数据
list_keys = city_data['城市'].to_list() # 存储key
list_values = city_data['省份'] # 存储value
city_dic=dict(zip(list_keys,list_values))
df['城市']=df['城市'].map(city_dic)
city_list=df['城市'].value_counts().index.to_list()
df.rename(columns={'城市':'省份'},inplace=True)
province_list=df['省份'].value_counts().index.to_list()
count=0
for i in province_list:
da=df[df['省份']==i]
da=da.groupby('日期', as_index=False).sum()
da = da.set_index('日期').reindex(index, fill_value=0) # 进行日期的补全
da['省份'] = i # 补全城市列数据
da = da.rename_axis('日期').reset_index() # 保留日期列
da['累计确诊人数'] = da['新增确诊'].cumsum() # 累加
da['累计治愈人数'] = da['新增治愈'].cumsum() # 累加
da['累计确诊死亡'] = da['新增死亡'].cumsum() # 累加
list2 = ["湖北","广东","河北"]
if i in list2:
tem_15=[]
for i in range(1, 7):
tem_15.append(da[da['日期'] == f"2020-0{i}-15"].index.to_list()[0])
print(da.loc[tem_15, :])
da = da.set_index("省份") # 将城市作为索引 存入csv是第一行便是城市
if count == 0:
da.to_csv(r"C:\Users\yunmeng\Desktop\task1_2.csv", index=True, na_rep='0', encoding='utf-8',mode = 'a')#写入csv文件,包括表头和索引 encoding需要用GB18030否则文字乱码
else:
da.to_csv(r"C:\Users\yunmeng\Desktop\task1_2.csv", index=True, header=None, na_rep='0', encoding='utf-8',
mode='a') # 追加写入,不包括表头
count+=1
# _*_ coding:utf-8 _*_
# 作者:yunmeng
# 日期:2021年11月08日
import pandas as pd
df=pd.read_csv(r"C:\Users\yunmeng\Desktop\泰迪标准代码文件\新冠B\task1_2.csv",sep=",")
data=df[['省份','日期']]
data['在院人数']=(df['累计确诊人数']-df['累计治愈人数']-df['累计确诊死亡'])
list2 = ["湖北","广东","上海"]
for j in list2:
tem_20 = []
da=data[data['省份']==j]
for i in range(1, 7):
tem_20.append(da[da['日期'] == f"2020-0{i}-20"].index.to_list()[0])
print(da.loc[tem_20, :])
data.to_csv(r"C:\Users\yunmeng\Desktop\task1_3.csv", index=False, na_rep='0', encoding='utf-8',mode = 'a')#写入csv文件,包括表头和索引
可以看到湖北省每月的每日在院人数情况,在2月份开始急剧上升,3月份开始急剧下降说明3月份采取的措施十分有效
从漏斗图中可以看出:
在3月份期间,确诊人数到治愈人数的转化率开始急剧上升,说明在在此期间的治疗效果是最好的。
同时,死亡转化率平缓上升,说明,控制的还算不错。
俄罗斯的情况: