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

如何在DataFrame列中通过正则表达式匹配指定字符串?

解决方案

可以通过以下步骤实现需求:

  1. 导入所需库
import pandas as pd
import re
  1. 构建示例DataFrame和目标字符串
# 构造DataFrame
data = {
    'name': ['123 Main Street', '123 Middle Street'],
    'regex': [r'\d+\s*main\s*st(reet)?', r'\d+\s*middle\s*st(reet)?']
}
df = pd.DataFrame(data)

# 目标字符串
mystring = 'abc xy 123 main st'
  1. 筛选匹配的行
    这里提供两种直观的实现方法:

方法一:用apply结合re.search逐行校验

# 筛选正则能匹配目标字符串的行,flags=re.IGNORECASE可选,用于忽略大小写匹配
matched_df = df[df['regex'].apply(lambda x: bool(re.search(x, mystring, flags=re.IGNORECASE)))]

方法二:用apply按行处理(逻辑更直白)

matched_df = df[df.apply(lambda row: re.search(row['regex'], mystring) is not None, axis=1)]
  1. 查看结果
print(matched_df)

输出结果符合预期:

name                        regex
0  123 Main Street  \d+\s*main\s*st(reet)?

注:如果需要忽略大小写匹配,保留flags=re.IGNORECASE参数即可;无需忽略则直接移除该参数。

内容的提问来源于stack exchange,提问作者Rafiqul Islam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 10:40:35