【Python】Pandas/DataframeでNaNをゼロに置き換えるfillnaメソッド
Pandas/DataframeでNaNをゼロに置き換える方法について解説します。fillnaという便利なメソッドがあります。
NaNに遭遇する場面としては移動平均など前のデータを参照して計算する場合などがあります。NaNのままだと計算する際に不都合が出るケースがあるのでそんな時はfillnaメソッドを使ってゼロで埋めましょう。
まず一例として以下のように3データ分の移動平均を取ります。最初の2データにNaNが挿入されていることがわかります。
import pandas as pd d = [4,5,6,7,8,4,5,7,7,1] header = ['DATA'] df = pd.DataFrame(data=d, columns=header) df['MA'] = df['DATA'].rolling(3).mean() print(df) # DATA MA # 0 4 NaN # 1 5 NaN # 2 6 5.000000 # 3 7 6.000000 # 4 8 7.000000 # 5 4 6.333333 # 6 5 5.666667 # 7 7 5.333333 # 8 7 6.333333 # 9 1 5.000000
これを以下のようにfillna(0)で処理するとNaNにゼロが挿入されます。
df['MA'] = df['MA'].fillna(0) # DATA MA # 0 4 0.000000 # 1 5 0.000000 # 2 6 5.000000 # 3 7 6.000000 # 4 8 7.000000 # 5 4 6.333333 # 6 5 5.666667 # 7 7 5.333333 # 8 7 6.333333 # 9 1 5.000000
スポンサーリンク