1. ホーム
  2. python

[解決済み] pandasのカラムの値をdictで再マップし、NaNを保持する

2022-03-20 13:45:45

質問

次のような辞書があります。 di = {1: "A", 2: "B"}

に適用したいと思います。 col1 のようなdataframeのカラムになります。

     col1   col2
0       w      a
1       1      2
2       2    NaN

を取得する。

     col1   col2
0       w      a
1       A      2
2       B    NaN

どうすればいいのでしょうか?なぜかこれに関連する言葉をググっても、dictsからcolumnを作る方法とその逆についてのリンクしか表示されません :-/。

どのように解決するのですか?

を使用することができます。 .replace . 例えば

>>> df = pd.DataFrame({'col2': {0: 'a', 1: 2, 2: np.nan}, 'col1': {0: 'w', 1: 1, 2: 2}})
>>> di = {1: "A", 2: "B"}
>>> df
  col1 col2
0    w    a
1    1    2
2    2  NaN
>>> df.replace({"col1": di})
  col1 col2
0    w    a
1    A    2
2    B  NaN

または直接 Series は、すなわち df["col1"].replace(di, inplace=True) .