pandas 列の値を辞書で再マップし、NaN を保持する 質問する

pandas 列の値を辞書で再マップし、NaN を保持する 質問する

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

col1次のようなデータフレームの列に適用したいと思います。

     col1   col2
0       w      a
1       1      2
2       2    NaN

取得するため:

     col1   col2
0       w      a
1       A      2
2       B    NaN

これを最も効果的に行うにはどうすればよいでしょうか?

ベストアンサー1

使用できます.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)

おすすめ記事