Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python Pandas入門:interpolate()メソッドでNaN値を補間して埋める方法

はじめに

Pandasでは、interpolate()メソッドを使うことで、DataFrame内の欠損値(NaN)を補間によって効率的に埋めることができます。このメソッドは、前後の値をもとに線形補間を行い、データの流れを保ちながら自然な形で欠損値を推定します。

ここでは、Microsoft Excelで開いた以下のようなCSVファイルを例に説明します。このデータには一部NaN値が含まれています。

Python Pandas入門:interpolate()メソッドでNaN値を補間して埋める方法

1. CSVファイルからデータを読み込む

まず、read_csv()関数を使って、CSVファイルのデータをPandas DataFrameに読み込みます。

dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")

2. interpolate()でNaN値を補間する

次に、interpolate()メソッドを呼び出すだけで、NaN値が自動的に補間されます。デフォルトでは線形補間(linear method)が適用されます。

dataFrame.interpolate()

完全なコード例

以下に、実際に動作するコード全体を示します。

import pandas as pd

# CSVファイルからデータを読み込んでDataFrameを作成
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")
print("DataFrame...\n", dataFrame)

# interpolate()でNaN値を補間
res = dataFrame.interpolate()
print("\n補間後のDataFrame...\n", res)

実行結果

上記のコードを実行すると、次のような出力が得られます。

DataFrame...
        Car   Reg_Price   Units
0       BMW        2500   100.0
1     Lexus        3500     NaN
2      Audi        2500   120.0
3    Jaguar        2000     NaN
4   Mustang        2500   110.0

補間後のDataFrame...
        Car   Reg_Price   Units
0       BMW        2500   100.0
1     Lexus        3500   110.0
2      Audi        2500   120.0
3    Jaguar        2000   115.0
4   Mustang        2500   110.0

結果の解説

出力結果を見ると、補間前は「Lexus」の行と「Jaguar」の行のUnits列がNaNでしたが、補間後にはそれぞれ110.0115.0が設定されています。

  • Lexusの110.0は、前の値(BMW: 100.0)と次の値(Audi: 120.0)の中間値として計算されています。
  • Jaguarの115.0は、前の値(Audi: 120.0)と次の値(Mustang: 110.0)の中間値として計算されています。

このように、interpolate()メソッドを使えば、時系列データや数値データの欠損値を前後の値から滑らかに推定でき、dropna()で行を削除する場合と異なり、データを失うことなく欠損処理が可能です。

  1. Python Pandasのnotnull()メソッドでNULL値(NaN)を確認する方法

    Pandasのnotnull()メソッドは、ブール値(True / False)を返すメソッドです。DataFrameにNULL値(NaN)が含まれている場合はFalseを返し、NULL値でない場合はTrueを返します。ここでは、NaN(NULL値)をいくつか含む次のCSVファイルを例にして説明します。CSVファイルの読み込みまず、read_csv()を使ってCSVファイルを読み込みます。dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\CarRecords.csv")NULL値以外(有効なデータ)の確認notnull(

  2. 【Python Pandas】fillnaで欠損値(NaN)を後方の値で埋める方法(bfill)

    はじめに PandasのDataFrameには、データの読み込みミスや入力漏れなどによって欠損値(NaN)が含まれることがあります。このような欠損値を処理する方法のひとつが、「後ろにある有効な値を前方向きに引き継いで埋める」という後方補完(Backward Fill)です。 本記事では、fillna()メソッドのmethodパラメータにbfillを指定して、null以外の値を後方から伝播させる方法を解説します。 bfillの基本的な使い方 後方補完を行うには、fillna()メソッドの引数に以下のように指定します。 fillna(method=bfill) bfillは「backward f