【问题标题】:Map multiple columns simultaneously with different maps使用不同的地图同时映射多个列
【发布时间】:2021-11-15 05:57:59
【问题描述】:

我这里有一个 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 中的列并获得所需的结果,但我试图避免迭代。如果不进行迭代,我该如何做到这一点?

【问题讨论】:

    标签: python pandas dictionary


    【解决方案1】:

    你可以使用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
    

    【讨论】:

      【解决方案2】:

      我会使用df.replace(dict) 函数来避免循环。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-27
        • 2011-06-27
        • 2012-09-17
        • 1970-01-01
        • 1970-01-01
        • 2022-10-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多