如何用向量化实现DataFrame逐单元格匹配参数并生成新列
向量化匹配DataFrame参数生成新列
我有两个DataFrame:
parameter:存储颜色和材质参数data:存储业务数据
需要用向量化方式逐单元格检查data的内容,匹配parameter中的参数值,生成包含匹配材质的新列attribute2。
初始数据代码
参数DataFrame
import pandas as pd parameter = pd.DataFrame({'color': ['red','blue','green'], 'material': ['wood','metal','plastic']})
业务数据DataFrame
data = pd.DataFrame({'name': ['my blue color','red chair','green rod'], 'description': ['it is a great color','made with wood','made with metal']})
向量化实现代码
# 匹配颜色生成attribute列(对应预期输出中的颜色匹配结果) data['attribute'] = data['name'].apply(lambda x: next((c for c in parameter['color'] if c in x), '')) # 向量化匹配材质生成attribute2列 material_pattern = '|'.join(parameter['material']) data['attribute2'] = data['description'].str.extract(f'({material_pattern})', expand=False).fillna('') # 查看结果 print(data)
输出结果
name description attribute attribute2 0 my blue color it is a great color blue 1 red chair made with wood red wood 2 green rod made with metal green metal
内容的提问来源于stack exchange,提问作者Shatha Al-Bajly
相关产品推荐
相关产品推荐

