【PythonでCIVID-19分析】日本版(2) Part13: プログラムのVer2.0へのアップデート3

投稿者: | 2020年7月24日

前回はデータセットConfirmedPCR_TESTをマージしてデータセットc19j2_day1、セータセットDeathsRecoveredをマージしてデータセットc19j2_totalを作成するところまでを行いました。

今回は通期累計数字になっているデータセットc19j2_totalを日別数字に変換し、そのデータとデータセットをc19j2_day1を結合してデータセットc19j2_dayを完成させたいと思います。

まずは以下コードを実行してデータセットc19j2_totalを日別数字に変換しデータセット19j2_day2を作成します。

#各カラムの日付数字への変換
def oneday(St):
    
    #各列の数字を格納
    St_d = []
    for i_cd in c19j2_total[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]
            St_ED.append(W)

            
        elif i ==  len(St_d)-1 :
            W2 = c19j2_total[St][len(c19j2_total[St])-1]
            St_ED.append(W2)

        else :
            break

    St_day= pd.DataFrame(St_ED)
    Cn = [St]
    St_day.columns = Cn
    #print(St_ed_df.head())
    St_day.to_csv(St+"_day.csv", encoding = "utf-8", index = None)
    
oneday("Recovered")
oneday("Deaths")

問題なく変換が終わりました、変換の確認は最後にすることにして今は先に進めたいと思います。

次はデータの結合ですが、先に日付データだけのデータセットを作成します。

データセットc19j2_totalから列Deathsと列Recoveredを削除し、データセットc19j2_day2を作成します。

#日付のみのデータセットを作成
c19j2_day2 = c19j2_total.copy()

#不要列の削除
del c19j2_day2["Recovered"]
del c19j2_day2["Deaths"]
c19j2_day2 .head()

さらにデータセットc19j2_day2Recovered_dayDeaths_dayを結合します。

#データの結合(日付・Recovered_day・Deaths_day)
c19j2_day2 = pd.concat([c19j2_day2 , Recovered_day , Deaths_day], axis=1)
c19j2_day2.head()
c19j2_day2.tail()

これでデータセットc19j2_day2が完成しました。

問題がなければ、Deathsの合計が988,Recoveredの合計が20403になっているはずです。

結果は予定どおりの内容となっています。

さらにデータセットc19j2_day1とデータセットc19j2_day2を結合し、データセットc19j2_dayを作成します。

#最終結合・データの完成
c19j2_day = pd.merge(c19j2_day1 , c19j2_day2, left_on=["Date"] , right_on=["Date"], how ="left")
c19j2_day["Deaths"] = c19j2_day["Deaths"].fillna(0).astype(np.int64)
c19j2_day["Recovered"] = c19j2_day["Recovered"].fillna(0).astype(np.int64)
c19j2_day.head() 

最後にカラムを並び替えて完成となります。

#カラムの並び替え
c19j2_day =  c19j2_day[["Date" , "Confirmed" , "Deaths" , "Recovered" , "PCR_TEST"]]
c19j2_day.head()

最後に欠損値の有無を確認しておきます。

いずれも0で欠損値のないことが確認されました。

これでプログラムc19j2_df_ver2.0の完成となります。

次回はこのデータセットを使って視覚化を行いたいと思います。

コメントを残す

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