日本のCIVID-19の状況を分析すべく、感染者数・死亡者数・回復者数・PCR検査数の視覚化を可能にしたプログラムc19j2_df_ver1.01でしたが、元データがデータ収集開始時からの累計数字の為、日歩の変化が追いづらい状況が続いてきました。
一日に何人の変化があったのかをひと目で判断するには、やはり日別の数字を元に視覚化を行う必要があります。
その為、プログラムc19j2_df_ver1.01を、日別の累計数字が表示されるように変更を加えることにしました。
累積の累計数字があるということは、当日から前日を引けば当日の数字が分かり、これを日付を遡って繰り返せば日別の数字が算出されるはずです。
この処理を感染者数・死亡者数・回復者数・PCR検査数それぞれに行い、再度結合すれば目的とする日別のデータセットが完成するはずです。
まずは、当日−前日の計算を行いやすくする為、日付データを格納した列Dateを降順に変更します。
#データのソート(日付降順)
c19j2_day_df = c19j2_df.sort_values(by="Date",ascending=False).copy()
c19j2_day_df.head()
c19j2_day_df.tail()
これで準備が整ったので、以下コードを実行し各カラムを日別の数字へと変換します。
#各カラムの日付数字への変換
def oneday(St):
#各列の数字を格納
St_d = []
for i_cd in c19j2_day_df[St] :
St_d.append(i_cd)
St_ED = []
#当日数字から前日数字を引いて日別数字を算出
for i in range(len(St_d)) :
if i +1 < len(St_d):
W = St_d[i] - St_d[i +1]
#print(W)
St_ED.append(W)
elif i == len(St_d)-1 :
W2 = c19j2_day_df[St][-1:][0]
print(W2)
St_ED.append(W2)
else :
break
#continue
#print(St_ED)
#print(len(St_ED))
#for i in range(len(Confirmed_d)):
St_ed_df = pd.DataFrame(St_ED)
Cn = [St]
St_ed_df .columns = Cn
#print(St_ed_df.head())
St_ed_df.to_csv(St+"_ed_df.csv", encoding = "utf-8", index = None)
oneday("Confirmed")
oneday("Recovered")
oneday("Deaths")
oneday("PCR_TEST")
かいつまんで内容を説明すると
①各カラムをリストに格納
②格納した各カラムのリストに当日−前日の計算処理・再度リストに格納
③日別累計になりリストに格納されたデータをCSVデータに書き込み
という流れとなります。
予定では感染者数・死亡者数・回復者数・PCR検査数の各日付別のデータセットが作成されているはずです。
問題なく変換されているかをの確認を次回に行いたいと思います。