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

如何在自定义函数中使用str.extract提取DataFrame指定字符串?

问题解决方法

你的代码存在语法、命名和逻辑上的多处错误,修正后的可行代码如下:

def extract_ml(col):
    # 用原始字符串避免转义问题,括号是捕获组,pandas的str.extract要求至少一个捕获组
    extracted_result = col.str.extract(r'(\d+ milliliter)')
    return extracted_result

错误点说明:

  • 别用str当参数名,这是Python内置的字符串类型名,会覆盖内置函数导致冲突,换成col这类自定义名称。
  • 原代码里的字符串'\d+ milliliter'没闭合引号,还错误地把参数str塞到extract的参数里,语法完全错误。
  • 你把提取结果赋值给pattern后,却返回了原参数,等于没做提取操作,必须返回提取后的结果。
  • 函数内部代码要缩进,return语句要和def处于同一缩进层级(原代码里return没缩进)。

使用示例:

假设你的DataFrame列名为content,调用方式如下:

import pandas as pd

df = pd.DataFrame({'content': ['abc 100 milliliter xyz', 'test 200 milliliter demo']})
df['extracted_ml'] = extract_ml(df['content'])
print(df)

如果只需要提取数字部分,把模式改成r'(\d+) milliliter'即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 07:05:33