こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
【Python×Pandas】欠損値を削除(除外)する方法
統計処理や機械学習分野におけるデータ前処理、とりわけ「欠損値の対応」は、数理・AIモデルの性能向上に向けて欠かせない位置付けを担っています。
本記事では欠損値対応の1つの手段である「欠損値の除外方法」について詳しく言及します。
欠損値データの除外は下記手順で実施します。
- データセットの準備
- PandasライブラリをもとにDataFrame変換
- dropna()メソッドで欠損値除去
欠損値の除外時に用いるPythonライブラリ
Pandas|dropna()
Pandasのdropna()
とは、欠損値除去のために用いられるメソッドです。
【Python実践】Pandas.dropnaを用いた欠損値除外処理
データセットの準備
データセットを準備しておきましょう。PandasのDataFrameにも変換しておきます。今回データセットの例として下記を用います。
import pandas as pd
from io import StringIO
csv_data = \
'''
名前,性別,年齢,出身
田中,女,21,京都
佐藤,女,,山梨
山田,男,30,
高橋,,,東京
'''
df = pd.read_csv(StringIO(csv_data))
print(df)
名前 | 性別 | 年齢 | 出身 | |
---|---|---|---|---|
0 | 田中 | 女 | 21 | 京都 |
1 | 佐藤 | 女 | NaN | 山梨 |
2 | 山田 | 男 | 30 | NaN |
3 | 高橋 | NaN | NaN | 東京 |
欠損値を1つ以上含む行を一括除去
下記のように記載すると、欠損値を1つ以上含むレコード(行)は一括して削除されます。
コード
df.dropna()
出力結果
欠損値を1つ以上含む列を一括除去
axis=1を指定すると、欠損値を1つ以上含むカラム(列)は一括して削除されます。
コード
df.dropna(axis=1)
出力結果
全て欠損値からなる行・列を除去
全てが欠損値からなる行を削除するには、how=”all”と指定します。
df.dropna(how="all")
一方で、全てが欠損値からなる列を削除するにはaxis=1を追加しましょう。
df.dropna(how="all", axis=1)
正常値(非欠損値)数に応じて行・列を除去
正常値(非欠損値)数に応じて行を除去する場合、thresh=nと指定します。(n:正常値数)
例えば、thresh=3と指定した場合、正常値数が3未満の行は全て削除されます。
コード
df.dropna(thresh=3)
出力結果
正常値がn個未満の列を全て削除する場合は、axis=1を追加しましょう。
コード
df.dropna(thresh=3,axis=1)
出力結果
特定カラム(列)の欠損値に基づき行を削除
subset=[‘カラム名(列名)’]を指定すると、指定した列の値が欠損値に該当する行は全て削除されます。例えば、性別を指定した場合、下記のような出力結果となります。
コード
df.dropna(subset=['性別'])
出力結果
欠損値の確認・可視化・欠損値補完方法について
本記事をご覧いただきありがとうございました!本記事ではデータクレンジングのノウハウとして「欠損値の確認・可視化方法」および「欠損値の補完方法」についても解説しています。是非ご覧ください!
データクレンジング:欠損値確認・可視化方法
【Python】Pandasで欠損値確認・missingnoで欠損状況を視覚化
データ分析や機械学習・AIモデル構築のために欠かせないデータクレンジング。その中でも欠損値の処理は分析・モデル精度向上という観点で非常に重要なプロセスと言えます。本記事では「Pythonを用いた欠損値の確認・可視化方法」について解説します。
データクレンジング:欠損値の補完方法
【Python】欠損値の補完・置換方法
データ分析や機械学習・AIモデル構築のために欠かせないデータクレンジング。本記事では「Pythonを用いた欠損値データの補完方法」について解説。
【参考】Pythonでのデータ前処理技法を学ぶ上でおすすめの教材
統計処理や機械学習分野では、データの前処理はモデル精度向上に欠かせません。Pythonでのデータ前処理について詳しく学びたい方は、上記の書籍もおすすめできます。
【参考】Pythonでのデータ前処理・分析・可視化
当サイトではPythonを用いた「データ前処理手法」「データ分析」「グラフや表を用いた可視化」手法について幅広く解説しております。AI・機械学習にも応用できる内容となっておりますため、興味がある方は併せてご確認下さい。
Pythonを活用したデータ処理・分析手法一覧
【参考】Pythonとは・できること一覧
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら