ホームページ >バックエンド開発 >Python チュートリアル >NaN 値を保持しながら辞書を使用して Pandas 列の値を再マップする方法は?
NaN を保持しながら辞書を使用して Pandas 列の値を再マッピングする
データフレームを処理するコンテキストでは、多くの場合、定義されたマッピングに基づく特定の列。 di = {1: "A", 2: "B"} などの事前定義された値の変換を含む辞書があり、これらのマッピングをcol1 という名前の pandas 列に適用するシナリオを考えてみましょう。目標は、NaN 値を変更せずに、col1 の値を適宜変更することです。
この変換を達成するための非常に効果的なアプローチの 1 つは、pandas の .replace メソッドを利用することです。この方法では、特定の値または範囲を指定されたターゲット値に置き換えることができます。実装方法は次のとおりです。
import pandas as pd import numpy as np # Example DataFrame df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}}) # Mapping dictionary di = {1: "A", 2: "B"} # Apply value remapping using .replace df.replace({"col1": di}, inplace=True) # Output DataFrame with remapped values while preserving NaN print(df)
この例では、 .replace メソッドは引数として辞書を受け取ります。キーは Col1 の元の値を表し、値は必要な再マップされた値を表します。 inplace パラメーターを True に設定すると、元のデータフレームが直接変更され、再割り当ての必要がなくなります。
また、特に Col1 シリーズに変換を適用したい場合は、次の構文を使用できます。
df["col1"].replace(di, inplace=True)
NaN はマッピング ディクショナリのキーではないため、このアプローチでは NaN 値が影響を受けないことが保証されます。
以上がNaN 値を保持しながら辞書を使用して Pandas 列の値を再マップする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。