pandas中对于文本列包含关键字情况的判断与分类

对一份订单数据的报错进行原因分类,样例数据如下:

import pandas as pd
df = pd.DataFrame({
'WrongCode': ['t提交失败,接口异常', '不可能购买多个指定商品', '商品不存在', '商品配置错误', '接口超时','未知原因'],
'OrderNum': ['1001', '1004', '1007', '1009', '1111','1119']})
起初想尝试自定义函数,通过str.contains来判断WrongCode里的关键字出现情况,但是失败,看了原因大致理解了,只能采用in的方式,也是解决了,但是真实数据量较大,写起来挺费劲也不易读,
def wrong_cl(description):
wrong_dict = {'报错':'互斥','流量包':'套餐'}
for i in wrong_dict:
if i in description:
return wrong_dict[i]
return None

想请教有没有好的解决方式,最好是可以直接自定义函数正则判断。

img


df.apply(wrong_cl ,axis=1)
import re
def wrong_cl(data):
    issue = re.findall(r'.*?(接口|商品).*?', data['WrongCode'])
    if len(issue) == 0:
        return '未知'
    elif issue[0] == '接口':
        return '接口报错'
    elif issue[0] == '商品':
        return '商品报错'