pandasをオンライン実行
Handle Missing Values in pandas
Find empty cells, then fill them or drop them so your calculations do not break.
学べること
- Finding NaN with isna()
- fillna() with a value or the median
- dropna() to remove rows
score.fillna(median)
Ada95LinNaN → 90.0 (median)Sam85Find, then fill or drop
実際のデータには、情報の不足、入力ミス、読み込みエラーなどによる空のセルがよくあります。pandasでは欠損値をNaNで表します。データの意味に応じて、その行を削除するか、妥当な値で埋めるかを選びます。
重要なポイント
- Missing numbers appear as NaN.
isna().sum() counts the gaps in each column.fillna(df["score"].median())fills gaps with a typical value.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コンパイラで実行できます。
発展問題
下のヒントにしたがってコードを書き換えてみましょう。自分で変えて結果を確かめると、コードを読むだけよりずっと深く理解できます。
- サンプルデータに行、列、いくつかの欠損値を追加する。
- 絞り込み、並べ替え、groupbyを組み合わせて小さなレポートを作る。
- 実際のデータファイルを読み込み、各列のデータ型を確認して、不正な値を処理する。