Python- 在另一列上使用通配符列表搜索为新列生成值

Python- Generate values for a new column using wildcard list search on another column

目前我正在根据产品代码为每个产品分配不同的流入率(浮点值)=> 应该有 2 列:PRODUCT_CODE' 和 'INFLOW_RATE'。产品代码为4个字符,规则如下:

样本数据如下:

产品代码超过 50 个,因此我认为最好检查条件并使用通配符赋值。到目前为止,我设法想出了这个代码:

Import re    
CFIn_01 = ['SVND','SAVL']
CFIn_10 = ["M.+","L.+","H.+"]
file_consol['INFLOW_RATE'] = 0.5
file_consol.loc[file_consol['PRODUCT_CODE'].isin(CFIn_01), 'INFLOW_RATE'] = 0.1
file_consol.loc[file_consol['PRODUCT_CODE'].isin(CFIn_10), 'INFLOW_RATE'] = 1.0

然而,当我检查结果时,'INFLOW_RATE'的所有列仍然填充了 0.5,而不是我预期的规则。我不确定这个问题的合适代码是什么。感谢任何帮助或建议!

像使用简单字符串一样创建自定义函数:

def my_func(word: str):
    if word.startswith('H') or word.startswith('L') or word.startswith('M'): 
        out = 0.1
    elif word == 'SVND' or word == 'SAVL':
        out = 1.0
    else:
        out = 0.5
    return out

然后应用函数:

df['INFLOW'] = df.PRODUCT_CODE.apply(my_func)