【PythonでCIVID-19分析】日本版(1) Part4:データの前処理 1-4(データの形成)

投稿者: | 2020年5月30日

前回に引き続き、今回も日本版(1)のデータの前処理編です。

前回は、遅ればせながら欠損値の有無を確認。

その存在が確認できたので削除を行いました。

今回は前回で先に述べたとおり、今の私がさらに処理を進められるよう日付・罹患者数・都道府県の3列になるようにデータを形成したいと思います。

試行錯誤の結果、以下のコードを作成しました。

lo_df = []
for i in c19_j1.columns[1:] :
    x = c19_j1[["日付",i]].copy()
    x["Location"] = i
    x = x.rename(columns={ i :"Confirmed"})
    x = x.rename(columns={ "日付" :"Date"})
    lo_df.append(x)
    
lo_df[0].head()

このコードを実行してできたデータが以下となります。

リストの中にある一つ目の内容を確認すると、北海道の2020/01/16から2020/05/16までが表示されます。

カラムの並びは北海道から始まり、沖縄で終わっていたので念の為に沖縄の内容も確認しておきます。

都道府県は47あるので、

lo_df[46].head()
lo_df[46].tail()

でリストに格納された46個目を表示すると沖縄県が表示されるはずです。

問題なく、沖縄県の2020/01/16から2020/05/16までが表示されました。

行数も北海道と同じ122行で問題はなさそうです。

かなり処理が進みました。

もう一息で、私が分析できる状態できそうです。

次に進む前に復習も兼ねて、今回のコードの内容を確認しておこうと思います。

処理の流れを分かりやすくする為にコメントを記入してみました。

#作成したデータフレームを格納する空のリストを作成
lo_df = []

#カラムの都道府県をfor分で回す
for i in c19_j1.columns[1:] :
   
    #日付と該当する都道府県の感染者数の二列のデータを作成
    x = c19_j1[["日付",i]].copy()
    
    #列「Location」を作成し、該当する都道府県名を入力
    x["Location"] = i
    
    #2列目のカラムを都道府県名から「Confirmed」に変更
    x = x.rename(columns={ i :"Confirmed"})
    
    #1列目のカラムを日付から「Date」に変更
    x = x.rename(columns={ "日付" :"Date"})
    
    #変数xをデータフレームlo_dfに格納
    lo_df.append(x)

#リストに格納されたデータフレームの確認
lo_df[0]

流れとしては、カラムをfor分で回し、取り出した各都道府県でそれぞれ以下処理を行います。

まず、カラム一番目の北海道からスタート。

日付と感染者数の2列にし、新しい列Locationを追加、該当する都道府県名を記入します。

このままだと感染者数のカラム名が元の都道府県名のままなのでConfirmedに変更します。これは後でデータを結合して一つにする際に、カラムの名前を統一しておくことが必要だからでもあります。

さらに、カラム名が日付だけ日本語だと整合性が取れないので、こちらもDateに変更することにしました。

上記処理をカラム分の47回繰り返し、47都道府県分のデータプレームを格納するリストを作成しました。

このデータをさらに処理して、次回の作業を進めようと思います。

コメントを残す

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