[pandas] 8. DataFrameに欠損値(NaN)があるときの処理

Pandas

はじめに

DataFrameにおける欠損値(NaN)の処理方法として、NaNを除外したり、置換したりする方法について説明する。

解説

モジュールのインポート

NaNを含むDataFrameの作成

NaNがTrueとなるisnull()

isnullにより、NaNの部分がTrueとなったbool型の配列が得られる。

NaNがFalseとなるnotnull()

notnullはisnullの逆で、NaNの部分がFalseとなったbool型の配列が得られる。

NaNを除外するdropna()

dropna()によりNaNを含む行を除外した配列が得られる。

dropna()でaxis=1、または、axis='columns'とすることでよりNaNを含む列を除外できる。

how='all'により、全てNaNの行だけ除外される。

NaNに値を代入するfillna()

.fillna(#)の#にNaNの代わりにしたい数値をいれると、NaNがその数値となった配列が得られる。

ひとつ前の要素を代入するffill

ffillはforward-fillの略で、NaNのひとつ前の要素が代入される。

ひとつ後の要素を代入するbfill

bfillはback-fillの略でひとつ後の要素が代入される。

axis=1とすることで列方向のひとつ後の要素が代入される。

ffill, bfillともに前、後の要素がNaNの場合はNaNのままとなる。

参考

pandas.DataFrame.fillna — pandas 2.2.3 documentation
pandas.DataFrame.dropna — pandas 2.2.3 documentation
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)

コメント