參考:python資料分析案例簡單實戰專案(二)–新冠疫情資料分析
任務一:資料的基本處理
任務 1.1
根據附件 1“城市疫情”中的資料統計各城市自首次通報確診病
例后至 6 月 30 日的每日累計確診人數、累計治愈人數和累計死亡人數,將結果
保存為“task1_1.csv”,第一行為欄位名,按城市、日期、累計確診人數、累計
治愈人數、累計死亡人數的次序分別放在 A 列~E 列,在論文中給出實作方法的
相關描述,并串列給出武漢、深圳、保定每月 10、25 日的統計結果,
# _*_ 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
任務 1.2
根據任務 1.1 的結果,并結合附件 1“城市省份對照表”統計各省
級行政單位按日新增和累計資料,將結果保存為“task1_2.csv”,第一行為欄位
名,按省份、日期、新增確診人數、新增治愈人數、新增死亡人數、累計確診人
數、累計治愈人數、累計死亡人數的次序分別放在 A 列~H 列,在論文中給出實
現方法的相關描述,并串列給出湖北、廣東、河北每月 15 日的統計結果,
# _*_ 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
任務 1.3
根據任務 1.2 的結果,統計各省級行政單位每天新冠病人的住院
人數,將結果保存為“task1_3.csv”,第一行為欄位名,按省份、日期、住院人
數的次序分別放在 A 列~C 列,在論文中給出實作方法的相關描述,并串列給出
湖北、廣東、上海每月 20 日的統計結果
# _*_ 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檔案,包括表頭和索引
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/356072.html
標籤:其他
上一篇:搭建Hadoop集群
