DataFrame型のmeanはnanをどうやって処理する?
rollingとかを使うとどうしても、nanが入ってしまいます。
仕方ありません。そんなときの処理の方法で困らないための方法です。
numpyの場合
np.mean()や、a.mean()
を使うと、1つでもnanが入っていた場合、出力がnanになってしまします。
それを防ぐために、np.nanmean() が用意されています。
np.nanmean() を使えば、nanをはじいた状態で平均値の計算をしてくれます。
pandasの場合
DataFrame型を扱う際にお世話になると思います。
pandasでは、df.mean() で平均を計算してくれます。
なので、今回はその挙動を調べました。



今回はこのliftというDataFrameを使用します。
index = [:28]までがNaNを含んでいます。それ以降は全てfloatの変数が入っています。
NaNの部分を排除して計算する場合
print(lift.dropna(subset=["lift"]).shape)
lift.dropna(subset=["lift"]).mean()
(103, 7)
lift 0.764410
trans_ab 10.000000
trans_a+trans_b 55.747573
trans_a 20.932039
trans_b 34.815534
a 0.805825
b 1.349515
dtype: float64
これは、問題無いと思います。
NaNの部分を何もせずに計算をする場合
print(lift.shape)
lift.mean()
(130, 7)
lift 0.764410
trans_ab 10.000000
trans_a+trans_b 55.747573
trans_a 20.932039
trans_b 34.815534
a 0.792308
b 1.284615
dtype: float64
先ほどと全く同じになりました!
つまり、pandasではNaNを自動的に排除して計算をしてくれるみたいです。
まとめ
細かい挙動を把握して、思い通りに操れるようになりたいです!
それでは、ハッピーpandasライフを!
スポンサーリンク
タイピングもままならない完全にプログラミング初心者から
アホいぶきんぐ
プログラミングってどこの国の言語なの~?
たった二ヶ月で
いぶきんぐ
え!?人工知能めっちゃ簡単にできるじゃん!
応用も簡単にできる…!!
という状態になるまで、一気に成長させてくれたオススメのプログラミングスクールをご紹介します!



テックアカデミーのPython+AIコースを受講した僕が本音のレビュー・割引あり! というプログラミング完全初心者だった僕が
Tech Academy(テックアカデミー)のPython×AIコース を二ヶ月間...