pandasをオンライン実行

Handle Missing Values in pandas

Find empty cells, then fill them or drop them so your calculations do not break.

  • 中級
  • 約2分で読めます
  • 実行できるサンプル 1 件
学べること
  • Finding NaN with isna()
  • fillna() with a value or the median
  • dropna() to remove rows
score.fillna(median)
Ada95
LinNaN → 90.0 (median)
Sam85

Find, then fill or drop

実際のデータには、情報の不足、入力ミス、読み込みエラーなどによる空のセルがよくあります。pandasでは欠損値をNaNで表します。データの意味に応じて、その行を削除するか、妥当な値で埋めるかを選びます。

重要なポイント

  1. Missing numbers appear as NaN.
  2. isna().sum() counts the gaps in each column.
  3. fillna(df["score"].median()) fills gaps with a typical value.
  4. dropna() removes rows that have gaps.

どんな場面で使う?

  • CSVやExcelファイルのような表形式のデータを読み込み、整え、変換する。
  • グループごとにデータを分析・集計し、統計を出す。
  • レポート、グラフ、機械学習モデルのためにデータを準備する。

サンプルコード

コードを実行 →
main.py
import pandas as pd
import numpy as np

students = pd.DataFrame({"name": ["Ada", "Lin", "Sam"], "score": [95, np.nan, 85]})
students["score"] = students["score"].fillna(students["score"].median())

print(students)
この例の実行ボタンを作成

実行結果

name  score
0  Ada   95.0
1  Lin   90.0
2  Sam   85.0

コードの解説

中央値は手元にある点数95と85から計算され、90になります。fillna()はLinのNaNを90で置き換えます。結果を列scoreに代入し直すことで、変更がDataFrameに保存されます。平均値ではなく中央値を使うと、極端に大きい値や小さい値の影響を受けにくくなります。

値を変更し、PythonをインストールせずにCodeUtilityオンラインPythonコンパイラで実行できます。

発展問題

下のヒントにしたがってコードを書き換えてみましょう。自分で変えて結果を確かめると、コードを読むだけよりずっと深く理解できます。

  1. サンプルデータに行、列、いくつかの欠損値を追加する。
  2. 絞り込み、並べ替え、groupbyを組み合わせて小さなレポートを作る。
  3. 実際のデータファイルを読み込み、各列のデータ型を確認して、不正な値を処理する。
Pythonコンパイラで実行 →