python数据分析案例简单实战项⽬(⼆)--新冠疫情数据分析
项⽬背景
2020 年 1 ⽉新型冠状病毒(以下简称新冠)肺炎在极短时间内就在全球范围内⼤规模流⾏,据美国约翰斯·霍普⾦斯⼤学 11 ⽉ 8⽇发布的新冠疫情最新统计数据显⽰,截⾄美国东部时间 11 ⽉ 8 ⽇ 11 时 24 分全球累计确诊⼈数超过 5000万,死亡⼈数超过125万。由于新冠病毒的传播速度快、致死率较⾼,世界卫⽣组织称新冠是百年⼀遇的⼈类公敌。⾃新冠肺炎爆发以来,⾯对社会对疫情信息的迫切需求,各级政府部门通过多种渠道及时发布第⼀⼿相关数据,许多组织和个⼈也迅速⾏动,利⽤多种分析⼿段为公众提供疫情数据的解读分析,以消除公众的恐慌情绪,提⾼⼈们的⾃我防护意识,配合政府的防疫措施,为我国最终打赢疫情防控阻击战发挥了巨⼤的推动作⽤。
项⽬⽬标
1.根据附件1中“城市疫情”的数据统计各城市⾃⾸次通报确诊病例后⾄ 6 ⽉ 30⽇的每⽇累计确诊⼈数、累计治愈⼈数和累计死亡⼈数,将结果保存为“task3_1.csv”,第⼀⾏为字段名,按城市、⽇期、累计确诊⼈数、累计治愈⼈数、累计死亡⼈数的次序分别放在 A 列~E 列。在报告中给出实现⽅法的相关描述,并列表给出武汉、深圳、保定每⽉ 10、25 ⽇的统计结果。
实现思路:对城市进⾏分组,获得单个城市的所有数据,传⼊时间遍历处理函数,按照⽇期从1-10到6-30进⾏遍历,到对应⽇期进⾏累加。
处理完之后判断是否是三城市之⼀,传输另外的处理函数,输出10、25⽇的统计结果,存在⼀个新的表中。
import pandas as pd
import datetime
fileName ='附件1.xlsx'
def opfile(fileName):
data = pd.read_excel(fileName)
return data
def rename(data):
def special(data, city):
data['⽇期']= pd.to_datetime(data['⽇期'])
da1 = data.set_index('⽇期')
s1 = da1['2020-01-10':'2020-01-10']
for i in range(1,7):# 数据是从20年1⽉到6⽉的故range(1,7)
s = da1['2020-0{}-15'.format(i):'2020-0{}-15'.format(i)]
s1 = pd.concat([s1, s], axis=0, join='outer')# 数据合并
s = da1['2020-0{}-10'.format(i +1):'2020-0{}-10'.format(i +1)]
s1 = pd.concat([s1, s], axis=0, join='outer')
#print(s1)
<_csv(r"task3_1_1.csv", index=True, header=1if city =='武汉'else0, na_rep='0', encoding='GB18030', mode='a')
def calculate(data):
for i in range(0,len(data["城市"].value_counts())):
da = data[data["城市"]== data["城市"].value_counts().index[i]]#得到只有⼀个城市的数据
ans = timefor(da).set_index('城市')
<_csv(r"task3_1.csv", index=True, header=1if i==0else0, na_rep='0', encoding='GB18030', mode='a')
def timefor(data):
begin = datetime.date(2020,1,10)
end = datetime.date(2020,6,30)
d = begin
d = begin
list1 =['武汉','深圳','保定']
city = data['城市'].iloc[0]
print(city)
delta = datetime.timedelta(days=1)#⽇期每天加1
temp = pd.DataFrame(data=None, columns=['⽇期','城市','累计确诊⼈数','累计治愈⼈数','累计确诊死亡'])
i =0
j =0
while d <= end:
if d in data['⽇期'].values:
北京疫情最新数据if j ==0:
temp.loc[j]=[d, city, data['累计确诊⼈数'].iloc[i], data['累计治愈⼈数'].iloc[i], data['累计确诊死亡'].iloc[i]]
else:
temp.loc[j]=[d, city, temp.loc[j-1]['累计确诊⼈数']+ data['累计确诊⼈数'].iloc[i], temp.loc[j-1]['累计治愈⼈数']+ data['累计治愈⼈数'].iloc[i], temp.loc[j -1]['累计确诊死亡']+ data['累计确诊死亡'].iloc[i]]
i +=1
else:
if j ==0:
temp.loc[j]=[d, city,0,0,0]
else:
temp.loc[j]=[d, city, temp.loc[j-1]['累计确诊⼈数'], temp.loc[j-1]['累计治愈⼈数'], temp.loc[j-1]['累计确诊死亡']]
j +=1
d += delta
if city in list1:
special(temp, city)
return temp
if __name__ =='__main__':
data = opfile(fileName)
rename(data)
data['⽇期']= pd.to_datetime(data['⽇期'],format='%Y-%m-%d').dt.date
calculate(data)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。