[pandasの使い方] 9. 欠損値(NaN, None)があるときの処理

Pandas
スポンサーリンク

Series, DataFrameにおける欠損値(NaN, None)の処理方法

pandasのSeries, DataFrameで欠損値(NaN, None)を処理するには?

pandasでは欠損値(NaN, None)を、除外したり、置換したりすることができる。

.isnull()

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

.notnull()

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

data[data.notnull()]によりTrueの部分だけをマスクして取り出すことができる。

.dropna()による除外

dropna()によりNaNまたはNoneの部分を除外した配列が得られる。

DataFrameにおける.dropna()

NaNのある行が除外されるため、[1]の行しか残らない。

NaNを含む列を除外したい場合は、df.dropna(axis=’columns’)とすれば、NaNのある列が除外される。

すべてNaNの列のみ除外

how=’all’と指定することで、すべてNaNの列のみが除外される。

要素数が指定数以上のものだけ残す

thresh=3とすることで、要素数が3以上の配列のみが残る。

欠損値に値を代入

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

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

axis=1とすることで行方向のひとつ前の要素が代入できる。

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

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

参考

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

コメント