見出し画像

【44日目】欠損値の処理をする【Python】

今日の写真のテーマは「欠ける」です。
欠損値がある状態では、エラーが出てしまいチャートが表示されません。そこで、色々な条件でもチャートが表示できるように、欠損値の処理をしていこうと思います。

0.どこでエラーが出ているかの確認

中身のデータを見たりして、とりあえず以下の2つの内容でエラーが出ていることが分かった。

1.数値が欠損していて、NaNになっている。
2.OHLCの関係が保てていない。

ここでOHLCの関係ってなんだよってことですが、OHLCが意味するところは以下の通り。

O:オープン(始値)
H:ハイ(高値)
L:ロー(安値)
C:クローズ(終値)

なので、OHLCの中で一番高いのは、Hだし、一番安いのはLでないといけない。この条件が満たせていないとき、Plotly側でエラーを出力するみたい。

1.数値の欠損について

まず一つ目の純粋な欠損値については、補間する方法と削除する方法がある。

補間する方法にもいろいろあって、時系列を参照して、そのIndexに対してうまいこと補間するものや、前後の数値をそのまま引っ張ってくるなど。

一番手っ取り早く、とりあえず欠損値を含むレコードは削除することにしてみる。

    df = df_row.dropna()

2.OHLCの条件

OHLCの条件を満たしているかチェックする関数を作成して、それをかませることにしようと思う。

def check_ohlc(df_row):
   df_li = []#pd.DataFrame()
   df_max = df_row.max(axis=1)
   df_min = df_row.min(axis=1)
   for i in range(len(df_row)):
       if df_max[i] == df_row.iat[i,1]:
           if df_min[i] == df_row.iat[i,2]:
               df_li.append(df_row.iloc[i,:])
   df_df = pd.DataFrame(df_li)
   return df_df

これで一応エラーをはかずに、チャートを表示させることが出来るようになりました。

ただ欠損値でDropした項目が多すぎる気がして、まともに解析できるのか・・・?という感じです。



あなたによって僕は生かされている。 私もあなたを生かせられますように。