python - 使用不同的 map 同时映射多个列

标签 python pandas dictionary

我这里有一个 pandas 数据框:

import pandas as pd

df = pd.DataFrame({'col1': ['a','a','b','b'],
                   'col2': ['a','a','b','b']})

我这里有一个映射字典:

dict_map = {'col1': {'a': 0.5, 'b': 1.0},
            'col2': {'a': 0.6, 'b': 0.9}}

我想将每一列映射到相应的字典,以便数据框看起来像:

    col1  col2
0   0.5   0.6
1   0.5   0.6
2   1.0   0.9
3   1.0   0.9

我可以轻松地遍历 df 中的列并获得所需的结果,但我试图避免迭代。如何在不迭代的情况下执行此操作?

最佳答案

您可以使用 pandas.DataFrame.replace :

df = df.replace(dict_map)

输出:

>>> df
   col1  col2
0   0.5   0.6
1   0.5   0.6
2   1.0   0.9
3   1.0   0.9

关于python - 使用不同的 map 同时映射多个列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69967259/

相关文章:

python - Numpy nanmean 和 dataframe (可能的错误?)

python - 按两列中的值生成行

Python - 无法修改 Django Rest Framework 中的 serializer.data 字典

c# - 哈希表到字典

python - 使用 PyAudio 将多个图层添加到录音中

python - 为 Pandas 数据框中满足条件的列打印特定列(代码有效,只需帮助将其减少为一行代码)

python - Pyramid 目录结构困惑

python - pd.read_csv - 忽略前 N 行

dictionary - Ansible:无法访问字典值-得到错误:“dict object”没有属性

python - 如何在Python中记录缩进错误?