はじめに
この実験では、データ分析における一般的な問題である pandas での欠損値の処理方法を学びます。欠損値の識別方法、欠損値の埋め込み方法、不要なデータの削除方法について説明します。また、欠損値を表すために使用できる pandas の実験的な NA スカラーについても議論します。
VM のヒント
VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートして DataFrame を作成する
まず、必要なライブラリである pandas と NumPy をインポートする必要があります。そして、いくつかの欠損値を持つ DataFrame を作成します。
import pandas as pd
import numpy as np
## 欠損値を持つ DataFrame を作成する
df = pd.DataFrame(
np.random.randn(5, 3),
index=["a", "c", "e", "f", "h"],
columns=["one", "two", "three"],
)
df["four"] = "bar"
df["five"] = df["one"] > 0
df2 = df.reindex(["a", "b", "c", "d", "e", "f", "g", "h"])
欠損値を検出する
次に、欠損値を検出するために isna 関数と notna 関数を使用します。
## 欠損値を検出するために isna と notna を使用する
pd.isna(df2["one"])
df2["four"].notna()
df2.isna()
欠損データを挿入する
ここでは、データに欠損値を挿入する方法を見ていきます。
## 欠損値を挿入する
s = pd.Series([1., 2., 3.])
s.loc[0] = None
欠損データを使った計算を行う
欠損データを使っていくつかの基本的な算術と統計的計算を行います。
## 欠損データを使った計算を行う
df["one"].sum()
df.mean(1)
df.cumsum()
欠損データがある軸のラベルを削除する
dropna を使って欠損データがあるラベルを除外する方法を学びます。
df.dropna(axis=0)
df.dropna(axis=1)
df["one"].dropna()
欠損値を補完する
DataFrame 内の欠損値を埋めるために interpolate 関数を使用します。
df = pd.DataFrame(
{
"A": [1, 2.1, np.nan, 4.7, 5.6, 6.8],
"B": [0.25, np.nan, np.nan, 4, 12.2, 14.4],
}
)
df.interpolate()
汎用的な値を置き換える
replace を使用して任意の値を他の値に置き換える方法を学びます。
ser = pd.Series([0.0, 1.0, 2.0, 3.0, 4.0])
ser.replace(0, 5)
欠損値を表す NA スカラーを理解する
最後に、欠損値を表すために使用できる pandas の実験的な NA スカラーについて説明します。
s = pd.Series([1, 2, None], dtype="Int64")
s
まとめ
この実験では、pandas を使って欠損データを処理する方法を学びました。欠損データの検出、挿入、計算、削除の方法を学びました。また、欠損値を補完したり置き換えたりする方法も学びました。最後に、欠損値を表すための pandas の実験的な NA スカラーについて説明しました。この知識は、欠損データが頻繁に問題となる現実世界のデータ分析タスクを処理する際に非常に役立ちます。