Python Pandasでnull以外の値を前方へ転送する方法(ffillの使い方)
Pandasのfillna()で欠損値(NaN)を前方向きに埋める
Pandasでは、fillna()メソッドのmethodパラメータを使うことで、null以外の値を前方(上の行から下の行へ)に転送できます。前方補完(forward fill)を行うには、値として'ffill'を指定します。
fillna(method='ffill')
なお、Pandas 2.1以降ではmethod引数は非推奨となっているため、専用メソッドのffill()を使うことが推奨されています。どちらも同じ結果が得られます。
サンプルデータの準備
ここでは、一部のセルにNaN(欠損値)を含むCSVファイル「SalesData.csv」を例として使用します。Microsoft Excelで開くと以下のようなデータになっています。

手順1:必要なライブラリをインポートする
まず、Pandasライブラリをインポートします。
import pandas as pd
手順2:CSVファイルからDataFrameを読み込む
read_csv()メソッドを使って、CSVファイルのデータをPandas DataFrameとして読み込みます。
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")
完全なコード例
以下は、NaN以外の値を前方に転送して欠損値を埋める完全なコードです。
import pandas as pd
# CSVファイルからDataFrameを読み込む
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")
print("DataFrame...\n", dataFrame)
# null以外の値を前方に転送して欠損値を埋める
res = dataFrame.fillna(method='ffill')
print("\nDataFrame after forward fill...\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 after forward fill...
Car Reg_Price Units
0 BMW 2500 100.0
1 Lexus 3500 100.0
2 Audi 2500 120.0
3 Jaguar 2000 120.0
4 Mustang 2500 110.0
結果の解説
元のDataFrameでは、「Lexus」と「Jaguar」の行の「Units」列がNaNでした。fillna(method='ffill')を適用すると、直前の行の値がそのまま転送され、LexusにはBMWの「100.0」、JaguarにはAudiの「120.0」がそれぞれ代入されていることがわかります。
新しいバージョンのPandasを使用している場合は、以下のように書き換えても同じ動作になります。
res = dataFrame.ffill()
-
Python Pandas入門:interpolate()メソッドでNaN値を補間して埋める方法
はじめにPandasでは、interpolate()メソッドを使うことで、DataFrame内の欠損値(NaN)を補間によって効率的に埋めることができます。このメソッドは、前後の値をもとに線形補間を行い、データの流れを保ちながら自然な形で欠損値を推定します。ここでは、Microsoft Excelで開いた以下のようなCSVファイルを例に説明します。このデータには一部NaN値が含まれています。1. CSVファイルからデータを読み込むまず、read_csv()関数を使って、CSVファイルのデータをPandas DataFrameに読み込みます。dataFrame = pd.read_csv(C:\
-
【Python Pandas】fillnaで欠損値(NaN)を後方の値で埋める方法(bfill)
はじめに PandasのDataFrameには、データの読み込みミスや入力漏れなどによって欠損値(NaN)が含まれることがあります。このような欠損値を処理する方法のひとつが、「後ろにある有効な値を前方向きに引き継いで埋める」という後方補完(Backward Fill)です。 本記事では、fillna()メソッドのmethodパラメータにbfillを指定して、null以外の値を後方から伝播させる方法を解説します。 bfillの基本的な使い方 後方補完を行うには、fillna()メソッドの引数に以下のように指定します。 fillna(method=bfill) bfillは「backward f