Remap values in pandas column with a dict, preserve NaNs

dataframe, dictionary, pandas, python, remap

Solution

You can use `.replace`. For example:

>>> 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

or directly on the `Series`, i.e. `df["col1"].replace(di, inplace=True)`.

Problem

I have a dictionary which looks like this: `di = {1: "A", 2: "B"}` I would like to apply it to the `col1` column of a dataframe similar to: ``` col1 col2 0 w a 1 1 2 2 2 NaN ``` to get: ``` col1 col2 0 w a 1 A 2 2 B NaN ``` How can I best do this?

Original source

Related problems