You need to enable JavaScript to run this app. 如何将Google Sheets的REGEXEXTRACT公式转换为Pandas或re实现的Python代码
优惠活动
大模型
产品
解决方案
定价
更多

如何将Google Sheets的REGEXEXTRACT公式转换为Pandas或re实现的Python代码

Google Sheets REGEXEXTRACT功能的Python实现方案

你需要的匹配规则是提取「连续大写字母+横杠+连续数字」的组合,直接使用Pandas内置的str.extract方法即可实现和Google Sheets完全一致的整列提取效果,该方法原生适配DataFrame列的矢量化操作,无需额外遍历。

正确实现代码

方案1:Pandas原生实现(优先推荐,性能最优)

import pandas as pd

# 正则规则和你Google Sheets中使用的完全一致
# expand=False 控制返回Series格式,可直接赋值给新列
df["newcol"] = df["oldcol"].str.extract(r'([A-Z]+\-[0-9]+)', expand=False)

方案2:使用re库实现

如果需要自定义更复杂的匹配逻辑,可以配合apply调用re库实现:

import pandas as pd
import re

def regex_extract(text):
    # 匹配目标规则
    match_result = re.search(r'([A-Z]+\-[0-9]+)', str(text))
    # 匹配成功返回结果,失败返回空值
    return match_result.group(1) if match_result else None

df["newcol"] = df["oldcol"].apply(regex_extract)

原有代码报错原因

  • 误用了re.sub方法:该方法是正则替换功能,不是提取功能,和你需要的REGEXEXTRACT逻辑不匹配
  • 正则表达式没有用引号包裹,也没有加raw字符串标识r,会触发语法错误和转义异常
  • 没有适配Pandas列的调用规则:不能直接对Series对象调用re库的方法,需要用Pandas内置的str类方法,或者通过apply包裹调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 19:18:00