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

pandas DataFrame列文本多数字提取(支持小数、逗号拼接输出)

Pandas文本列全量数字提取实现

原实现的核心缺陷

  • 调用的str.extract()方法仅返回正则匹配到的首个捕获组内容,无法抓取文本中出现的全部数字
  • 原正则规则(\d+)仅匹配连续整数,无法识别带小数点的数值,会遗漏类似60.5、30.5的带小数内容

正确实现步骤

  • 调整匹配规则:使用\d+(?:\.\d+)?作为提取正则,可同时兼容普通整数、带多位小数的数值
  • 替换提取方法:改用str.findall()逐行抓取所有符合规则的内容,每一行的返回结果为存储该行全部数字的列表
  • 格式拼接:对每行提取到的数字列表,以英文逗号为分隔符拼接为目标格式的字符串
import pandas as pd

df = pd.DataFrame({
    'input': [
        'Age is 55 and 5 years',
        'Age is 58',
        'Age is 60.5',
        'Age is 12 and 5 years',
        'Age is 30.5 and 2 years of service'
    ]
})

# 生成符合要求的输出列
df['output'] = df['input'].str.findall(r'\d+(?:\.\d+)?').str.join(',')

匹配规则说明:上述正则的逻辑为「至少一位数字开头,后续可选匹配小数点加至少一位数字」,不会出现把“60.5”拆成“60”“5”两个独立数字的问题,适配日常文本中的数字书写格式。

执行上述代码后,output列逐行内容与期望输出完全一致:

55,5
58
60.5
12,5
30.5,2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 13:45:03