如何修改Pandas代码实现Desc和Desc1多列关键词提取
解决方案
要让代码同时处理Desc和Desc1两列,只需把要处理的列名放到一个列表里,嵌套遍历目标列和关键词,针对每个列+关键词的组合生成对应的匹配列,修改后的代码如下:
import pandas as pd # 构造包含Desc和Desc1列的示例数据 df = pd.DataFrame({ 'Desc': ['cat is black', 'dog is white', 'bird is yellow'], 'Desc1': ['dog runs fast', 'cat sleeps', 'fox jumps high'] }) kw = ['cat', 'dog'] # 定义要处理的目标列 target_cols = ['Desc', 'Desc1'] # 嵌套遍历目标列和关键词,生成对应匹配列 for col in target_cols: for k in kw: # 新列命名为「列名_关键词_col」,区分不同列的匹配结果 df[f"{col}_{k}_col"] = df[col].map(lambda s: s if k in s else '')
代码说明
- 新增
target_cols列表,把需要处理的Desc和Desc1列统一管理 - 外层遍历目标列、内层遍历关键词,确保每个关键词都能针对两个列分别生成匹配结果列
- 新列名采用
{col}_{k}_col格式,能清晰区分对应列和关键词,避免列名冲突
内容的提问来源于stack exchange,提问作者Susana Martins
相关产品推荐
相关产品推荐

