You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何提取pandas列中匹配指定列表的词汇并生成对应新列

实现代码

import pandas as pd
import numpy as np
import re

listing  = ['test', 'big']
df = pd.DataFrame({'Title':['small test','huge Test', 'big','nothing', np.nan, 'a', 'b']})

# 构造Test_Flag列
df['Test_Flag'] = df['Title'].str.extract(
    pat=f'({"|".join(listing)})',
    flags=re.IGNORECASE,
    expand=False
).str.lower().fillna('')

print(df)

代码说明

  • str.extract():从Title列的字符串中捕获符合正则规则的内容,flags=re.IGNORECASE实现不区分大小写匹配
  • expand=False:指定返回Series格式,可直接赋值给新列
  • str.lower():将捕获到的内容统一转为小写,和预定义listing的词汇格式保持一致
  • fillna(''):将无匹配、原字段为NaN的结果统一替换为空字符串,符合输出要求

如果单条Title存在多个匹配词汇,上述代码默认返回第一个匹配项,如需返回所有匹配项可将str.extract替换为str.findall,再根据需要做格式调整

运行结果

Title Test_Flag
0  small test      test
1   huge Test      test
2         big       big
3     nothing          
4         NaN          
5           a          
6           b          

内容的提问来源于stack exchange,提问作者Giacomo F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 18:45:06