小编典典

使用 dict 重新映射 pandas 列中的值,保留 NaN

all

我有一本看起来像这样的字典: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

我怎样才能最好地做到这一点?出于某种原因,与此相关的谷歌搜索术语仅向我显示有关如何从 dicts 制作列的链接,反之亦然:-/


阅读 118

收藏
2022-03-13

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

2022-03-13