非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】DataFrameの欠損値処理:dropnaで行や列を簡単に削除

   

データ分析を行う際、欠損値の存在は結果に影響を及ぼすため、適切な処理が重要です。PythonのPandasライブラリでは、dropnaメソッドを使って欠損値を含む行や列を簡単に削除できます。本記事では、dropnaの使い方や引数の設定方法を詳しく解説し、効率的にデータをクリーンアップする方法を紹介します。

dropnaの基本的な使い方

dropnaは以下のように使います。

df.dropna(axis=0)  # 欠損値を含む行を削除
df.dropna(axis=1)  # 欠損値を含む列を削除
 
引数の説明
  • axis=0(デフォルト):行単位で処理します。つまり、欠損値が含まれる行を削除します。
  • axis=1:列単位で処理します。つまり、欠損値が含まれる列を削除します。
  • how
    • “any”(デフォルト):欠損値が1つでも存在する行または列を削除します。
    • “all”:すべての値が欠損値である行または列だけを削除します。
  • thresh:欠損値以外の値が指定された数以上ある場合にその行や列を残します。
  • subset:特定の行や列のみを対象に欠損値を探します。

プログラム例

import pandas as pd
import numpy as np

# サンプルDataFrame
data = {
    "A": [1, 2, np.nan],
    "B": [4, np.nan, 6],
    "C": [7, 8, 9]
}
df = pd.DataFrame(data)

# 欠損値が存在する行を削除
print(df.dropna(axis=0))

# 欠損値が存在する列を削除
print(df.dropna(axis=1))

# すべて欠損値の行だけを削除
print(df.dropna(axis=0, how="all"))
 
# 出力
#      A    B  C
# 0  1.0  4.0  7

#    C
# 0  7
# 1  8
# 2  9

#      A    B  C
# 0  1.0  4.0  7
# 1  2.0  NaN  8
# 2  NaN  6.0  9
 

 

まとめ

欠損値の処理はデータ分析や前処理で避けられない課題です。Pandasのdropnaを使えば、欠損値を含む行や列を簡単に削除でき、クリーンなデータを素早く整えることができます。ただし、データの削除が分析に与える影響を考慮し必要に応じてfillnaで補完する方法も検討しましょう。※fillnaメソッドは欠損値を埋めてくれるのでデータ量を減らしたくない場合など有効です。

 

スポンサーリンク

 - Python