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

标签 python dictionary pandas remap

我有一个如下所示的字典: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 制作列的链接,反之亦然:-/

最佳答案

您可以使用 .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).

关于python - 使用 dict 重新映射 pandas 列中的值,保留 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20250771/

相关文章:

python - key 错误 : False pandas dataframe

c++ - 为什么map在(switch)格外变成空的?

python - Pandas:如何不使用复制/ View ?

python - Pandas 数据框 to_csv - 拆分为多个输出文件

python - 通过脚本运行 Scrapy spider & 配置输出文件的设置

python - 有什么方法可以使用变量而不是文字来使用 .format() 更改 float 的小数位数?

c# - Dictionary<string, List<int>> 复制到另一个Dictionary

python - 在 Python Pandas 中,有没有办法在一行中多行并排?保持秩序

python - VS Code Python 单元测试 "No tests ran"

dictionary - KDB:从字典中就地删除