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

Python Pandas入門:DataFrame内のNaN(欠損値)を0に置き換える方法

PandasのDataFrameに含まれるNaN(欠損値)を0に置き換えるには、fillna()メソッドを使用します。このメソッドは、データクレンジングや前処理の際に非常によく使われる基本的なテクニックです。

例として、以下のようなCSVファイル(Microsoft Excelで開いた状態)があるとします。このデータには一部NaN値が含まれています。

Python Pandas入門:DataFrame内のNaN(欠損値)を0に置き換える方法

手順1:必要なライブラリをインポートする

まず、Pandasライブラリをインポートします。

import pandas as pd

手順2:CSVファイルからDataFrameを読み込む

次に、read_csv()メソッドを使ってCSVファイルのデータをDataFrameに読み込みます。

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

手順3:fillna()メソッドでNaNを0に置き換える

fillna()メソッドに引数として0を渡すことで、DataFrame内のすべてのNaN値を0に置き換えることができます。

dataFrame.fillna(0)

完全なサンプルコード

以下に、一連の処理をまとめたコード全体を示します。

import pandas as pd

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

# NaN値を0に置き換える
res = dataFrame.fillna(0)
print("\nNaN置き換え後の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

NaN置き換え後のDataFrame...
        Car   Reg_Price   Units
0       BMW        2500   100.0
1     Lexus        3500     0.0
2      Audi        2500   120.0
3    Jaguar        2000     0.0
4   Mustang        2500   110.0

補足:fillna()メソッドの便利な使い方

fillna()メソッドは単純な0への置き換え以外にも、さまざまな活用方法があります。

  • 特定の列だけを置き換える: dataFrame['Units'].fillna(0) のように列を指定すれば、その列のみNaNを処理できます。
  • 平均値や中央値で埋める: dataFrame.fillna(dataFrame.mean()) を使えば、統計的な代表値で欠損値を補完できます。
  • 元のDataFrameを直接更新する: inplace=True オプションを指定すると、新しいオブジェクトを作成せずに元のDataFrameを直接書き換えられます(dataFrame.fillna(0, inplace=True))。

なお、Pandasのバージョンによっては inplace=True の使用が非推奨となっているため、dataFrame = dataFrame.fillna(0) のように代入する形式が推奨されています。状況に応じて適切な方法を選択してください。

  1. 【Python】Pandasのreplace()メソッドでDataFrameの値を別のDataFrameの値に置き換える方法

    Pandasでは、replace()メソッドを使うことで、あるDataFrameの値を別のDataFrameから取得した値に簡単に置き換えることができます。この記事では、2つのDataFrameを作成し、片方の値をもう片方の値で置き換える手順を、サンプルコードと実行結果とともにわかりやすく解説します。 基本的な流れ まず、元となる1つ目のDataFrameを作成します。 dataFrame1 = pd.DataFrame({Car: [Audi, Lamborghini], Place: [US, UK], Units: [200, 500]}) 次に、置き換え先となる2つ目のDataFram

  2. Python・Pandas DataFrameで負の値を直前の正の値に置き換える方法

    はじめに PandasのDataFrameに含まれる負の値を、その直前に出現した「最新の正の値」で置き換える方法を解説します。もし直前に正の値が存在しない場合は、その値を0に更新します。 入力データの例 たとえば、次のようなDataFrameが入力だったとします。 DataFrame: One two 0 -3 -6 1 7 -1 2 4 2 3 0 -8 出力結果の例 処理後の出力は次のようになります。 Updated DataFrame: One two 0 0 0 1 7 0 2 4 2 3