【PythonでCIVID-19分析】日本版(2) Part8: プログラムの修正1(累積累計から日別累計への変換)

投稿者: | 2020年7月18日

日本の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検査数の各日付別のデータセットが作成されているはずです。

問題なく変換されているかをの確認を次回に行いたいと思います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です