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

Python Pandasで欠損値(NaN)を定数値で埋める方法

Pandasのfillna()メソッドを使うと、DataFrame内の欠損値(NaN)を任意の定数値で簡単に置き換えることができます。valueパラメータに置き換えたい値を指定するだけで、すべてのNaNを一括して埋められます。まずは、必要なライブラリをエイリアス付きでインポートしましょう。

import pandas as pd
import numpy as np

次に、「Car」と「Units」の2つの列を持つDataFrameを作成します。NumPyのnp.nanを使って、意図的に欠損値を設定しています。

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
        "Units": [100, 150, np.nan, 80, np.nan, np.nan]
    }
)

ここでは、「Units」列のNaNに代入する定数値として200を用意します。

constVal = 200

fillna()メソッドのvalueパラメータにこの定数値を渡し、NaNを200に置き換えます。

dataFrame['Units'] = dataFrame['Units'].fillna(value=constVal)

サンプルコード

以下が完全なコード例です。

import pandas as pd
import numpy as np

# DataFrameを作成
dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
        "Units": [100, 150, np.nan, 80, np.nan, np.nan]
    }
)

print("DataFrame ...\n", dataFrame)

# 「Units」列のNaNを埋めるための定数値を設定
constVal = 200

# NaNを定数値200で置き換え
dataFrame['Units'] = dataFrame['Units'].fillna(value=constVal)
print("\nUpdated Dataframe after filling NaN values with constant values...\n", dataFrame)

出力結果

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

DataFrame ...
      Car  Units
0     BMW  100.0
1   Lexus  150.0
2   Lexus    NaN
3 Mustang   80.0
4 Bentley    NaN
5 Mustang    NaN

Updated Dataframe after filling NaN values with constant values...
      Car  Units
0     BMW  100.0
1   Lexus  150.0
2   Lexus  200.0
3 Mustang   80.0
4 Bentley  200.0
5 Mustang  200.0

ポイント解説

  • fillna():欠損値を指定した値で置き換えるメソッドです。value引数にスカラー値を渡すと、対象範囲内のすべてのNaNがその値で埋められます。
  • np.nan:NumPyが提供する浮動小数点型の欠損値表現です。pandasではNaNが標準的な欠損値マーカーとして扱われます。
  • 列全体への代入を推奨:以前はinplace=Trueがよく使われていましたが、新しいバージョンのpandasではdataFrame['Units'] = dataFrame['Units'].fillna(...)のように列へ直接代入する書き方が推奨されています。Seriesのスライスに対するinplace操作は警告が出たり意図通りに動作しない場合があるため注意しましょう。
  • データ型に注意:NaNは浮動小数点型のため、整数値を含む列にNaNが混在すると、列全体がfloat型(100.0など)に変換されます。
  1. Python Pandas入門:DataFrame内のNaN(欠損値)を0に置き換える方法

    PandasのDataFrameに含まれるNaN(欠損値)を0に置き換えるには、fillna()メソッドを使用します。このメソッドは、データクレンジングや前処理の際に非常によく使われる基本的なテクニックです。例として、以下のようなCSVファイル(Microsoft Excelで開いた状態)があるとします。このデータには一部NaN値が含まれています。手順1:必要なライブラリをインポートするまず、Pandasライブラリをインポートします。import pandas as pd手順2:CSVファイルからDataFrameを読み込む次に、read_csv()メソッドを使ってCSVファイルのデータをDa

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

    はじめにPandasでは、interpolate()メソッドを使うことで、DataFrame内の欠損値(NaN)を補間によって効率的に埋めることができます。このメソッドは、前後の値をもとに線形補間を行い、データの流れを保ちながら自然な形で欠損値を推定します。ここでは、Microsoft Excelで開いた以下のようなCSVファイルを例に説明します。このデータには一部NaN値が含まれています。1. CSVファイルからデータを読み込むまず、read_csv()関数を使って、CSVファイルのデータをPandas DataFrameに読み込みます。dataFrame = pd.read_csv(C:\