ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame の NaN 値を前後の値で埋める方法は?

Pandas DataFrame の NaN 値を前後の値で埋める方法は?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-03 11:01:09374ブラウズ

How to Fill NaN Values in a Pandas DataFrame with Preceding or Following Values?

Pandas DataFrame で NaN を前後の値に置き換える

質問

NaN を含む DataFrame を検討してください:

In [1]:
import pandas as pd
df = pd.DataFrame([[1, 2, 3], [4, None, None], [None, None, 9]])

In [2]:
df
    0   1   2
0   1   2   3
1   4 NaN NaN
2 NaN NaN   9

目標は、各 NaN を最も近い非 NaN に置き換えることです。その上の同じ列の値。最初の行には NaN が含まれていないと仮定します。

回答

これを実現する効率的な方法は、DataFrame の fillna メソッドを使用することです。

In [3]:
df.fillna(method='ffill')
    0   1   2
0   1   2   3
1   4   2   3
2   4   2   9

fillna メソッドは次を使用します。 forward fill (ffill) 戦略。NaN をその中の最後の有効な観測値に置き換えます。

逆のことを行うには、bfill メソッド (後方フィル) を使用できます。

In [4]:
df.fillna(method='bfill')
    0   1   2
0   1   2   3
1   4   4   3
2   9   9   9

fillna メソッドは、DataFrame をインプレースで変更しません。元の DataFrame を更新するには、inplace=True:

In [5]:
df.fillna(method='ffill', inplace=True)

In [6]:
df
    0   1   2
0   1   2   3
1   4   2   3
2   4   2   9
を設定します。

以上がPandas DataFrame の NaN 値を前後の値で埋める方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。