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

如何从数据集的waiting行提取含小数的数值至新列?

解决从指定行提取小数数值的问题

核心思路

问题根源在于你没有限定仅对waiting行执行提取操作,导致全局匹配时误抓取到其他行的末尾数值。正确逻辑是先精准定位目标行,再在目标行范围内提取符合要求的小数数值。

具体实现(以Pandas为例)

假设你的数据集存储在DataFramedf中,row_label列用于标识行名称(包含waiting行),text_content列存储待提取的文本内容:

  1. 初始化新列
    先给DataFrame新增目标列,默认设为空值:
import pandas as pd
df['waiting_decimal'] = pd.NA
  1. 筛选目标行并提取数值
    使用正则匹配含小数的数值,仅对waiting行执行提取操作:
import re

# 匹配小数的正则(支持正负、整数部分为0的场景,如-0.56、123.45)
decimal_regex = r'-?\d+\.\d+'
# 定位waiting行的掩码
target_mask = df['row_label'] == 'waiting'

# 对目标行执行提取
df.loc[target_mask, 'waiting_decimal'] = df.loc[target_mask, 'text_content'].apply(
    lambda x: re.search(decimal_regex, x).group() if re.search(decimal_regex, x) else pd.NA
)
  1. 校验结果
    查看提取后的结果,确保仅waiting行有有效数值,其他行保持空值:
print(df[['row_label', 'text_content', 'waiting_decimal']])

灵活调整点

  • 如果你的小数带百分号(如3.14%),把正则改成r'-?\d+\.\d+%'即可
  • 若文本中有多个小数,要提取全部的话,把re.search换成re.findall,结果会以列表形式存储
  • 务必用loc定位目标行后再赋值,避免误修改其他行数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:50:31