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

从含字符串、日期时间的混合文本中提取目标数字(Pandas场景)

数据清洗问题:提取混合字符串中的目标数字

原始数据集

import pandas as pd
import numpy as np

x = np.array([
            '355395.7037', 
            '355369.6383', 
            '355367.881', 
            '355381.419',
            '357394.9D7a82te7o6fm4o9n4t3h7 print: 06/10/202',
            '357405.7897626596'])

y = np.array([
            '4521429.292', 
            '4521430.0229', 
            ' 4521430.1191', 
            '4521430.1256',
            '3 13:36 4521735.552137422',
            '4521512.725'])

df = pd.DataFrame({'X':x, 'Y':y})

数据特征与提取需求

部分数据为字符串与数字混合形式:

  • X列示例:357394.9D7a82te7o6fm4o9n4t3h7 print: 06/10/202,其中夹杂拆分单词Date of month及日期;
  • Y列示例:'3 13:36 4521735.552137422',其中混杂年份数字3(来自2023)和时间13:36。

需要去除无关内容,仅保留目标数字,提取规则如下:

  • X列:目标数字整数部分为6位,提取前6位整数,再拼接后续所有连续数字(直到遇到空格或非数字字符),例如从上述X列混合字符串中提取357394.97827649437;
  • Y列:目标数字整数部分为7位,从字符串末尾查找小数点,向前取7位整数及后续小数部分。

现有方案的问题

现有处理方案在应对更新后的测试用例时出现错误:

更新后的测试用例

x = np.array([
            '355395.7037', 
            '355369.6383', 
            '355367.881', 
            '355381.419',
            '357394.9D7a82te7o6fm4o9n4t3h7 p',
            '357405.7897626596'])

y = np.array([
            '4521429.292', 
            '4521430.0229', 
            '4521430.1191', 
            '4521430.1256',
            'rint: 06/10/2023 13:36 4521735.552137422',
            '4521512.725'])

处理后Y列第5行(索引为4)被错误提取为06102023,而正确的目标数字应为4521735.552137422,需解决该问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 22:20:23