【问题标题】:Replace values in one column, depending on values in another column替换一列中的值,具体取决于另一列中的值
【发布时间】:2016-11-22 13:09:34
【问题描述】:
import pandas as pd

dict = {
    '1': 'Alb',
    '2': 'Bnk',
    '3': 'Cd'
}

df = pd.DataFrame(
    {
        'col1': {
            0: 20,
            1: 2,
            2: 10,
            3: 2,
            4: 44
        }, 
        'col2': {
            0:'a',
            1:'b',
            2:'c',
            3:'b',
            4:20
        }
     }
) 

如果col2 value == 'b',我想用'Bnk' 替换col1 值2

如何做到这一点? 谢谢

【问题讨论】:

    标签: python dictionary replace


    【解决方案1】:

    有几种方法可以做到这一点,但为了清楚起见,您可以使用apply

    import pandas as pd
    
    dict = {
        1: 'Alb',
        2: 'Bnk',
        3: 'Cd'
    }
    
    df = pd.DataFrame(
        {
            'col1': {
                0: 20,
                1: 2,
                2: 10,
                3: 2,
                4: 44
            }, 
            'col2': {
                0:'a',
                1:'b',
                2:'c',
                3:'b',
                4:20
            }
         }
    )
    
    def change(data, col2val, dict):
        if data['col2'] == col2val:
            data['col1'] = dict[data['col1']]
    
        return data
    
    new_df = df.apply(change, axis = 1, col2val = 'b', dict = dict)
    
    print(new_df)
    

    为了简单起见,我还修改了 dict 以使用整数键。

    输出:

      col1 col2  
    0   20    a  
    1  Bnk    b  
    2   10    c  
    3  Bnk    b  
    4   44   20  
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 1970-01-01
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多