Pandas DataFrame の補完方法

PandasPandasBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Python の Pandas ライブラリの interpolate() メソッドを調べます。interpolate() メソッドは、さまざまな補完手法を使って、DataFrame 内の欠損値または NaN(Not a Number)値を埋めるために使用されます。補完とは、既存のデータポイントに基づいて欠損値を推定するプロセスです。

VM のヒント

VM の起動が完了したら、左上隅をクリックして Notebook タブに切り替え、Jupyter Notebook にアクセスして練習します。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

まず、pandas ライブラリと numpy ライブラリをインポートしましょう。

import pandas as pd
import numpy as np

欠損値を持つ DataFrame を作成する

次に、いくつかの欠損値を持つ DataFrame を作成しましょう。

df = pd.DataFrame([(0.0, np.nan, -1.0, 1.0), (np.nan, 2.0, np.nan, np.nan), (2.0, 3.0, np.nan, 9.0)], columns=list('abcd'))
print(df)

出力:

     a    b    c    d
0  0.0  NaN -1.0  1.0
1  NaN  2.0  NaN  NaN
2  2.0  3.0  NaN  9.0

線形補完法を使って欠損値を補完する

線形補完法を使って欠損値を補完することができます。線形補完法では、DataFrame 内の値が等間隔であると仮定されます。

interpolated_df = df.interpolate(method='linear')
print(interpolated_df)

出力:

     a    b    c    d
0  0.0  NaN -1.0  1.0
1  1.0  2.0 -1.0  5.0
2  2.0  3.0 -1.0  9.0

多項式補完法を使って欠損値を補完する

多項式補完法を使って欠損値を補完することもできます。多項式補完法では、スプラインまたは多項式の次数を指定する必要があります。

interpolated_column = df['a'].interpolate(method='polynomial', order=1)
print(interpolated_column)

出力:

0    0.0
1    1.0
2    2.0
Name: a, dtype: float64

直前値補完法を使って欠損値を補完する

欠損値を補完する別の方法は直前値補完法です。直前値補完法は、DataFrame 内の既存の値で NaN 値を埋めます。

interpolated_df = df.interpolate(method='pad')
print(interpolated_df)

出力:

     a    b    c    d
0  0.0  NaN -1.0  1.0
1  0.0  2.0 -1.0  1.0
2  2.0  3.0 -1.0  9.0

まとめ

この実験では、Pandas の interpolate() メソッドを使って DataFrame 内の欠損値または NaN 値を埋める方法を学びました。線形、多項式、直前値などのさまざまな補完方法を検討しました。補完は、欠損値を推定し、分析用にデータをより完全にするための便利な手法です。