ホームページ >バックエンド開発 >Python チュートリアル >NaN 値を保持しながら辞書を使用して Pandas 列の値を再マップする方法は?

NaN 値を保持しながら辞書を使用して Pandas 列の値を再マップする方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-22 11:08:38825ブラウズ

How to Remap Pandas Column Values Using a Dictionary While Keeping NaN Values?

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 サイトの他の関連記事を参照してください。

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