Python 在另一列值与特定值匹配的情况下,如何更新一列行的值?

Python 在另一列值与特定值匹配的情况下,如何更新一列行的值?,python,pandas,dataframe,series,Python,Pandas,Dataframe,Series,我有一个数据框架,有四列id1、id2、config_类型、call_频率,但是id1和id2并不重要 我需要将call_frequency列的值替换为一个特定的字符串,其中一个条件与另一列匹配 输入: 输出: 基本上,当配置类型匹配时,我需要替换相应call\u frequency列中的值 {'type2':'string2', 'type3':'string3', 'type4':'string4'} 不匹配的值应该保持不变 我试过: df[df.config_type == 'dict_

我有一个数据框架,有四列id1、id2、config_类型、call_频率,但是id1和id2并不重要

我需要将call_frequency列的值替换为一个特定的字符串,其中一个条件与另一列匹配

输入:

输出:

基本上,当配置类型匹配时,我需要替换相应call\u frequency列中的值

{'type2':'string2', 'type3':'string3', 'type4':'string4'}
不匹配的值应该保持不变

我试过:

df[df.config_type == 'dict_key', 'column'] = 'dict_value'
但这给了我错误

TypeError:“Series”对象是可变的,因此无法对其进行散列

你知道怎么解决这个问题吗

使用loc。 替代方法使用:


请不要发布代码或数据的图像。复制并粘贴为文本,然后将其格式化为代码选择它并键入ctrl-K这是一种方式,将where和replace组合在一起,我删除了我的答案,这仍然比使用loc快。最后的df['t2']是什么?@SukumarRdjf应该是call\u frequency
d = {'type2':'string2', 'type3':'string3', 'type4':'string4'}
for k,v in d.items():
    df.loc[df.config_type==k, 'call_frequency'] = v
import numpy as np

d = {'type2':'string2', 'type3':'string3', 'type4':'string4'}
df["call_frequency"]=np.where(df['config_type'].isin(d), df['config_type'].replace(d), df['call_frequency'])